Simple C++ programme de mot de passe
Je suis en train d'apprendre à utiliser le C++ et j'ai décidé de créer un programme de mot de passe lorsque l'utilisateur est invité pour le mot de passe et il compare l'entrée de l'utilisateur pour le mot de passe et retourne un, mauvais ou bons. Pour une raison quelconque, ce programme renvoie toujours mal et je ne sais pas pourquoi. Il doit être quelque chose à voir avec la comparaison des chaînes de caractères, mais je ne suis pas sûr.
#include <iostream>
#include <string>
using namespace std;
int main(){
string pass = "password";
string input;
cout << "What is your password: ";
cin >> input;
if (input==pass){
cout << "Correct" << endl;
}else{
cout << "Wrong" << endl;
}
return 0;
}
J'aimerais un peu d'aide de programmeurs qui sont en quelque sorte plus bien versé en C++ comme je l'ai transféré sur C++ à partir de Python et l'transitions un peu rocailleuse.
- Fonctionne très bien
- La chaîne de mot de passe dans votre code contenir des caractères d'espace?
- Ceci est le code de test et j'ai fait aucun changement dans le poster ici. Et une " modification de la chaîne de pass = "" mot de passe "à la" chaîne pass = "mot de passe\r" " n'a aucun effet.
- Êtes-vous de la saisie de la chaîne
"password"
comme un argument en ligne de commande? - Je suis saisie de la chaîne de passe: mot de passe (pas de guillemets)
- Vous ne devez pas utiliser ce programme si vous souhaitez créer un véritable programme de mot de passe. Le mot de passe doit être chiffré.
- Il s'avère donc mon problème est que j'utilise CodeBlocks et l'IDE n'est pas automatiquement générer le programme lorsque vous lui demandez d'exécuter le programme. Donc, je dois le dire à construire ensuite l'exécuter, et ce code fonctionne réellement bien. Mon erreur stupide et je suis désolé si j'ai confondu les personnes ou posé une question stupide.
Vous devez vous connecter pour publier un commentaire.
1.vous pourriez utiliser la fonction de comparaison, voir:http://www.cplusplus.com/reference/string/string/compare/
2.vous devez déboguer à la ligne if (saisie==pass){
pour imprimer transmettre et d'entrée et de vérifier si elles sont les mêmes.
J'ai trouvé j'avais besoin de:
pour obtenir la définition de l'opérateur d'insertion (pour
cin >> input;
) et std::string::operator==() (pourif (input==pass)
). Une fois que je l'ai fait, il a bien fonctionné dans Visual C++.Quel compilateur que vous utilisez?