正当な理由はありますか?
std::string input;
std::getline(std::cin, input);
getline 呼び出しはユーザー入力を待ちませんか? 何とかシンの状態がめちゃくちゃ?
ほとんどの場合、他のデータを読み取った後に文字列を読み取ろうとしていますint
。
入力を検討してください:
11
is a prime
次のコードを使用する場合:
std::cin>>number;
std::getline(std::cin,input)
これgetline
は 11 以降の改行のみを読み取るため、ユーザーの入力を待っていないという印象を受けます。
これを解決する方法は、ダミーを使用しgetline
て番号の後の改行を消費することです。
次のコードをテストしたところ、問題なく動作しました。
#include <iostream>
using namespace std;
int main()
{
string input;
getline(cin, input);
cout << "You input is: " << input << endl;
return 0;
}
あなたのプログラムでは、入力バッファにすでに何かがあると思います。