按Enter继续,或按q退出c ++

时间:2017-09-26 00:10:45

标签: do-loops

我正在编写一个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')

但它不起作用。任何帮助都将非常感激。

2 个答案:

答案 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,则计数器现在为奇数,程序显示跳跃的人。