Char mot de passe []

Fermé
juventino110 - 9 juin 2010 à 21:35
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 10 juin 2010 à 01:19
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
10 juin 2010 à 00:40
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 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
10 juin 2010 à 01:19
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