pLayerZero Posted March 11, 2015 at 10:56 AM Report Share #579133 Posted March 11, 2015 at 10:56 AM Bom dia pessoal. Estou ainda a aprender C++ e num exercício de um livro que estou a ler, é-me pedido para fazer uma programa de consola que aceite o username e password de vários utilizadores (por exemplo um Admin e um User). Consigo fazer o programa funcionar perfeitamente para 1 utilizador. O problema é que quando tento adicionar mais uma 'if statment', o programa não funciona correctamente. Abaixo está o código para apenas um utilizador, neste caso o Admin: #include <string> #include <iostream> using namespace std; int main() { string input_id; string input_pass; bool login = true; do { cout << "Enter user name ID:"; getline(cin,input_id); cout << "Enter password: "; getline(cin,input_pass); if (input_id == "Admin" && input_pass == "root") { login = true; cout << "login success. welcome admin."; } else { login = false; cout << "Bad login\n"; } } while (login!= true); return 0; } E agora o código quando tento adicionar um segundo utilizador, neste caso o User: #include <string> #include <iostream> using namespace std; int main() { string input_id; string input_pass; bool login = true; do { cout << "Enter user name ID:"; getline(cin,input_id); cout << "Enter password: "; getline(cin,input_pass); if (input_id == "Admin" && input_pass == "root") { login = true; cout << "login success. welcome admin."; } else { login = false; cout << "Bad login\n"; } if (input_id == "User" && input_pass == "system") { login = true; cout << "login success. welcome user."; } else { login = false; cout << "Bad login\n"; } } while (login!= true); return 0; } O que acontece neste caso é que após eu inserir o Admin ou o User e as suas respectivas passwords, o programa primeiro considera o login como aceite, mas depois dá a mensagem de "bad login". Será que alguém me poderia dar alguma dica? Provavelmente estou a cometer um erro muito estúpido, mas por mais voltas que dê, não consigo chegar lá sobre o que é que possa estar errado. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 11, 2015 at 10:58 AM Report Share #579134 Posted March 11, 2015 at 10:58 AM só para não dar a solução : pesquisa na net sobre if's encadeados 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
pLayerZero Posted March 11, 2015 at 11:38 AM Author Report Share #579138 Posted March 11, 2015 at 11:38 AM Obrigado HappyHippyHippo pela dica. Já consegui e funciona perfeitamente 🙂 O código ficou da seguinte forma: #include <string> #include <iostream> using namespace std; int main() { string input_id; string input_pass; bool login; do { cout << "Enter user name ID:"; getline(cin,input_id); cout << "Enter password: "; getline(cin,input_pass); if (input_id == "Admin" && input_pass == "root") { login = true; cout << "login success. welcome admin."; } else if (input_id == "User" && input_pass == "system") { login = true; cout << "login success. welcome user."; } else if (login != true) cout << "Bad login\n"; } while (login!= true); return 0; } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now