Mot de passe en C

drodidier Messages postés 4 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 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