Boucle et chaines de caracteres

Résolu
BlueStar21 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
BlueStar21 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis débutante en C++. J'ai tenté de créer un petit programme demandant à l'utilisateur de saisir un mot de passe. Il doit le saisir à nouveau et le programme vérifie que les deux saisies se correspondent. Si le mot de passe est incorrect, le programme affiche un message d'erreur et redemande à l'utilisateur de le saisir.

Lorsque je tente de compiler le programme, le logiciel affiche une erreur au niveau de la ligne "if":

#include <iostream>
using namespace std;
#include <string.h>


int main ()
{

string motpasse ("rien");
cout<<" rentrez un mot de passe valide "<<endl;
cin>>motpasse;


string MotPasse ("rien");
cout << "Veuillez donner le mot de passe"<<endl;
cin>>MotPasse;

motpasse=MotPasse;

if (motpasse.compare(MotPasse)) != 0)
{
while (!(cin>>MotPasse))
cerr<<"Erreur. Retapez le mot de passe. "<<endl;
cin>>MotPasse;
}

else

{
cout<<"Bienvenue"<<endl;
}

return 0;
}

J'avais au début tenté de créer une unique boucle while à la place de la structure if ... else ... (l'idéal d'après moi) , mais sans succès.

Merci d'avance de votre aide !
A voir également:

1 réponse

SypayV Messages postés 6586 Date d'inscription   Statut Contributeur Dernière intervention   449
 
Bonjour,

Vous avez une parenthèse fermante en trop dans votre if, juste après MotPasse.

Vous n'êtes pas obligé de faire while (!(cin>>MotPasse))
cin est déjà une opération blocante.

Edit : #include <string.h> -> #include <string>

Par ailleurs, vous faites motpasse=MotPasse.
Donc les deux entrées seront toujours égales à partir de cette ligne.

Musicalement,
SypayV.
1
BlueStar21 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci de votre réponse. Cependant, ne suis-je pas obligée de créer deux variables contenant le même mot de passe, afin que l'une serve à comparer l'autre (celle que l'utilisateur entre au clavier et qui doit être la même) ?

Je pense que le problème dans l'exécution de mon code vient de là: je viens d'effectuer quelques tests, et j'ai pu constater que même si les deux mots de passe ne concordent pas, le message "Bienvenue !" s'affiche à l'écran ...
0