Char mot de passe []

juventino110 -  
loupius Messages postés 789 Statut Membre -
Bonjour, a tous quelqu'un aura une solution pour ce code :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char MotDePasse [100];

while(MotDePasse != "john")
{
printf("Entrez le mot de pass ? ");
scanf("%s", MotDePasse);
}

else
{
printf("Salut john, je suis heureux de te revoire !\n\n");
}
return 0;
}

aidez moi svp

2 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
while(MotDePasse != "john")
Lors de la première itération, que vaudra MotDePasse sachant que tu as oublié de l'initialiser ? Première erreur.
Seconde plus grave : en C, on ne compare pas les chaînes de caractères avec les opérateurs de comparaison. Il faut utiliser la fonction strcmp().

scanf("%s", MotDePasse);
Attention, scanf est une fonction très délicate à utiliser. Utilise plutôt scanf("%99s", MotDePasse);
Je te conseille d'utiliser fgets() d'une manière plus générale.

Cdlt,
0
loupius Messages postés 789 Statut Membre 148
 
Hormis les recommandations fournies par fiddy, il te faudra trouver, dans la mesure où tu désires voir la compilation arriver à son terme, un 'if' pour ton 'else'.
Bonne continuation.
0