我正在编写一个c ++程序,显示一个男人的2个输出,如果按下回车,它看起来像是在跳跃。如果输入'q',程序应该停止。这是我所得到的。
//这个程序会显示一个跳跃的人。
使用namespace std;
int main()
{
string user_input;
do
{
cout << endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl;
cout << " O" << endl;
cout << " /|\\" << endl;
cout << " ( )" << endl;
cout << "------------------------------------------------------------" << endl;
cout << "Press ENTER to continue or enter q to quit:";
getline(cin, user_input);
cout << endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl;
cout << " \\O/" << endl;
cout << " | " << endl;
cout << " / \\" << endl << endl;
cout << "------------------------------------------------------------" <<endl;
cout << "Press ENTER to continue or enter q to quit:";
} while(getline(cin, user_input));
return 0;
}
我已经尝试了几个小时,如果输入q,我仍然无法弄清楚如何停止程序。
我尝试过while语句的变体,例如
while(getline(cin,user_input)&amp;&amp; user_input =!'q')
但它不起作用。任何帮助都将非常感激。
答案 0 :(得分:0)
这似乎是家庭作业,这意味着这不是问的地方。但我认为它可能与没有任何if语句来检查用户给出的值有关。而你的另一次尝试失败是因为getline在这种情况下得到整个换行符而不仅仅是'q'。这里有更多Getline keeps on getting newline character. How can I avoid this?。你可以用(getline(cin,string)&amp;&amp; string!=“q \ n”替换你试过的支票) 编辑:我希望这是一个评论,但缺乏声誉。
答案 1 :(得分:0)
所以我今天早上终于明白了,并且认为我会分享以供将来参考。
使用namespace std;
int main() {
string user_input; int counter = 0;
do
{
if ( counter % 2 == 0)
{
cout << endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl;
cout << " O" << endl;
cout << " /|\\" << endl;
cout << " ( )" << endl;
cout << "------------------------------------------------------------" << endl;
}
if ( counter % 2 != 0)
{
cout << endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl << endl
<< endl << endl << endl << endl << endl << endl;
cout << " \\O/" << endl;
cout << " | " << endl;
cout << " / \\" << endl << endl;
cout << "------------------------------------------------------------" <<endl;
}
cout << "Press ENTER to continue or enter q to quit:";
getline (cin, user_input);
if (user_input == "q")
{
return 0;
}
counter = counter + 1;
} while (user_input != "q");
return 0;
如果循环重复,由int计数器表示,每个循环添加一个,甚至程序显示该人站立。然后,显示提示“按ENTER继续或'q'退出:”。如果用户输入ENTER,getline(cin,user_input),它将继续。如果用户输入'q',则循环中断(返回0;)。如果循环重复,如果用户按下ENTER,则计数器现在为奇数,程序显示跳跃的人。