Je mettais une boucle DO / TIX dans ma fonction de mot de passe, mais cela ne fonctionne pas. J'utilise xcode10 sur le code C ++ et lorsque j'utilise un point-virgule après l'instruction tandis que l'instruction affiche une erreur indique que le code de distinction n'exécutera jamais je voulais mettre cette boucle et quelques autres choses afin que je puisse dire Faites cette boucle infinie jusqu'à ce que vous entriez le mot de passe correct. p> p>
3 Réponses :
Eh bien dans votre relevé si code> Vous revenez dans les deux cas entraînant l'arrêt de la fonction afin qu'il ne puisse jamais entrer dans la condition de la tester
Hey! Donc, j'ai enlevé la fonction de retour de si et sinon, il ne fonctionne toujours pas. le faire pendant que la boucle. Si je saisis le mot de passe correct, il continue, je saisi le mauvais mot de passe, la sortie affiche un mot de passe incorrect et cesse. Il affiche un mot de passe incorrect et c'est comme ça. Entrez le mot de passe pas de mot de passe incorrect (11db). J'utilise Xcode pour C ++.
Il y a une déclaration de retour dans le " C'est pourquoi il ne fera jamais le " Essayez de définir les instructions de retour dans un endroit différent dans le code :) p> si code>" et aussi dans "
sinon code>".
Vous pouvez voir que peu importe ce qui sera le résultat de
ch.compare (g) code>, la fonction reviendra à son appelant. P>
pendant code>". p>
Vous devez vérifier si vous avez également une entrée, en cas de EOF code>.
string password() { // you don't need g as parameters in, your overwriting it
string const ch = "hello"; // make ch const to show it not supposed to change
cout << "Enter password";
string g; // defining g here since now you need it
while (getline(cin, g)) { // check that the read from cin is OK
if (ch != g) { // simple notation for comparing two strings. There's also == available
cout << "INCORRECT PASSWORD. Please try again\n"; // no return if you want to try again
} else {
cout << "correct password";
return g; // you could also return ch here since they have the same content
}
}
cout << "Unable to read line. aborting\n"; // not really a lot you can do if there is no input to read.
return string(); // returning empty string.
}
Alors, quand pensez-vous que
pendant que code> sera exécuté? De plus,
retour (0); code> pour la construction
std :: string code> a un comportement non défini.