J'ai copié cette fonction depuis le web. Je ne comprends pas ce que c == 8 && pos
signifie dans cette fonction et ch
est un char comment peut-il être égal à 8
. Je veux changer la longueur du mot de passe à 4 qui est maintenant 13. Quand j'ai essayé de le changer et de le compiler. Le programme a fonctionné avec succès mais il n'arrête pas de prendre le mot de passe et même en appuyant sur entrer il n'a pas arrêté de prendre le mot de passe d'entrée.Quel est le problème avec ma fonction (mot de passe)?
Je pense qu'il doit faire quelque chose avec c == 8 && pos
dans la fonction suivante.
void password(char buffer[])
{
char c;
int pos = 0;
printf("Enter Password : ");
do
{
c = getch();
if(isprint(c))
{
buffer[ pos++ ] = c;
printf("%c", '*');
}
else if(c == 8 && pos)
{
buffer[ pos-- ] = '\0';
printf("%s", "\b \b");
}
}while(c != 8);
}
Le 8 est un caractère de retour arrière ASCII, cette partie gère la suppression d'un caractère lorsque vous appuyez sur la touche de retour arrière. – PeterJ
'13' est le code ASCII de la touche' Enter'. 'while (c! = 13);' cesserait d'avoir une entrée après avoir tapé 'Enter' –
Merci beaucoup! –