Mot de passe en C

drodidier Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis debutant en C, et j'aimerai faire un programme qui demande le login et le password d'un utilisateur.
Mais voilà, la fonction scanf ne me permet pas controler le nombre de caracteres, donc j'ai utilisé la fonction getch(), mais elle aussi j'ai de probleme quand je tente d'utiliser la touche back space.
Pour le password c'est le probleme, l'utilisation de back space.
voici mon code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
    char log[10],passw[10],l,pas;
    int i=0;
    printf("Login:");
    do
    {
    l=getch();
    log[i]=l;
    printf("%c",l);
    while((i==9) && (l!='\r'))
    l=getch();
    i++;
    }while(l!='\r');
    i=0;
    printf("\nPassword:");
    do
    {
    pas=getch();
    passw[i]=pas;
    printf("*");
    while((i==9) && (pas!='\r'))
    pas=getch();
    i++;
    }while(pas!='\r');
    i--;
    passw[i]='\0';
    return 0;
    }


Que faire pour que la qu'il puisse reconnaitre la touche back space.
Merci d'avance.



A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Utilises scanf plutôt que getch, c'est bien plus adapté à ton problème !

#include <stdio.h>

int main()
{
  char log[10], passw[10];
  printf("Login : "); scanf("%9s%*[^\n]",log);
  printf("Password : "); scanf("%9s%*[^\n]",passw);
  return 0;
}

La confiance n'exclut pas le contrôle
0