2017-01-19 5 views
0

私のコードの一部には、反復するたびに入力を求めるループ内にgets()ステートメントがあります。ただし、入力が1回だけ要求され、入力が既に行われているかのように、ループが再び実行されたときに再度入力する必要はありません。これは間違っているように見えないので、本当に面倒です。ループ内のgets()ステートメントは一度だけ入力を求めます

while(5) { 
    cout<<"Is your number "<<x<<" ?\n[yes/no]\n"; 
    gets(ans); 
    if (strcmpi(ans,"yes")==0) 
     break; 
} 
+4

'gets 'はC++ 14以降では削除されていることに注意してください。文字列を扱っている場合や、 '>>'を使用している場合は、 'getline'に切り替える必要があります。 – NathanOliver

+0

@ sleekmaster292 C++に接続されているC標準では、それを取得する方法がサポートされていません。 –

+0

[mcve]してください。また、 'strcmpi'を使わないでください。 '=='は文字列でうまく動作します – AndyG

答えて

0

はC++ [14]以降のバージョンではありません。代わりにgetline()を使用します。 std::cinも効果的ですが、自分がやっていることや個人の好みによって異なります。

関連する問題