Mot de passe en C

Fermé
drodidier Messages postés 3 Date d'inscription jeudi 24 mars 2011 Statut Membre Dernière intervention 16 mai 2011 - 28 mars 2011 à 01:47
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 28 mars 2011 à 08:07
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.



1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 28/03/2011 à 12:56
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