2017-09-26 2 views
0

私は、Enterを押すとジャンプしているように見せるために、男の2つの出力を表示するC++プログラムを作成しています。 'q'を入力すると、プログラムは停止するはずです。これは私が得た限りです。Enterキーを押して続行するかqを押してC++を終了する

//このプログラムはジャンプマンを表示します。

が名前空間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を入力した場合、プログラムを停止する方法を見つけ出すことはできません。

私は

を、このような

しばらく(getlineの(CIN、USER_INPUT)& & USER_INPUT =! 'Q')として、while文のバリエーションを試してみたが、それは動作しません。どんな助けでも大いに感謝されるでしょう。

答えて

0

これは宿題のように思われますが、これは場所を問いません。しかし、私は、ユーザーが与えた値をチェックするためのif文が存在しないことと関連があると想定します。そして、あなたの他の試みは、getlineが改行全体を得ることに失敗しました。この場合、 'q'だけではありません。詳細はGetline keeps on getting newline character. How can I avoid this?です。 (getline(cin、string)& & string!= "q \ n") 編集:私はこれをコメントにしたいが、評判が足りないと思った。

+0

これは宿題ではなく、私はちょうどC + +コーディングを学ぼうとしています。私が学んでいる本の初期の活動にあります。しかし、あなたの助けをありがとう。 –

+0

あなたがしたいと思うかもしれないことは、あなたのループをリファクタリングして、チェックがこのようなものではないようにすることです(cinとcheckから読んでください):{loop code ..... getline(cin、user_input); bool input = user_input!= "q \ n";} while(入力) "\ n"は改行のエスケープ文字で、endlと同じものを出力しますが、文字列 " – JoyStickFanatic

+0

"に含まれています。 –

0

私は今朝それを考え出し、今後の参考に分け合うと思った。

が名前空間stdを用い

が挙げ含みます。メイン

INT(){

列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; 

ループを繰り返した場合は、1つの各ループを追加しますint型のカウンタで示される、でもプログラムは男の地位を表示しています。その後、プロンプト "Enterキーを押して続行するか 'q'を押して終了します:"が表示されます。ユーザーがEnter、getline(cin、user_input)と入力した場合、処理は続行されます。ユーザーが 'q'を入力すると、ループが中断します(0を返します)。ループが繰り返されると、ユーザがENTERを押すと、カウンタが奇数になり、プログラムは男のジャンプを表示します。

関連する問題