如何解决嵌套的If If语句正在跳过用户输入第二个问题的数据的机会
已更新,可以更准确地描述问题
C ++语言 我正在尝试使用嵌套的if语句用于学习目的(以及后续教程)。我知道逻辑&&运算符对于这种情况非常理想。反正...
当第一个猜测等于第一个答案时,嵌套的If语句将跳过用户输入第二个问题的数据的机会。当第一个猜测不正确时,一切都会按预期进行(问题和用户输入请求都将执行)
我可能会弄错,但是我觉得所有内容都与本教程相提并论,但是我仍然遇到我提到的问题。有人得到答案了吗? :)
谢谢:)
#include <iostream>
#include <string>
int main ()
{
std:: string variable_one_guess;
std:: string variable_two_guess;
std:: string variable_one_answer = "The answer for one";
std:: string variable_two_answer = "The answer for two";
std:: cout << "Guess the variable one value\n";
std:: cin >> variable_one_guess;
std:: cout << "Guess the variable two value\n";
std:: cin >> variable_two_guess;
if (variable_one_guess == variable_one_answer) // I am aware I can just combine both if statements using the logical
// && operator but I need this to work for learning purposes
{
if(variable_two_guess == variable_two_answer)
{std:: cout << "Correct!\n";}
}
}
解决方法
Quentin正确地使我注意到了getline函数,该函数起作用了。 cin读取单个用空格分隔的单词。所以我不得不用cin代替getline函数。
//code
std:: cin >> variable_one_guess;
// code
std:: cin >> variable_two_guess;
//code
替换为
//code
getline(std::cin,variable_one_guess);
// code
getline(std::cin,variable_two_guess);
//code
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。