質問

C ++プログラムで入力を読んでいます。最初にいくつかの整数、次に文字列。 getline(cin、stringname); で文字列を読み取ろうとすると、ユーザーが入力した行は読み取れません。代わりに、ユーザーがを押したときから空の行が表示されます。整数を入力したら、と入力します。

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

cin をクリアするにはどうすればよいですか( cin.clear()は機能しません)。文字列が" enter"で埋められないようにするにはキー?

通常の入力受信であり、コードの先頭に特別なものはありません。 私はこのような問題を抱えていましたが、解決策を忘れました 文字列が" enter"で埋められないように、 cin をクリアする必要があります。キー。

役に立ちましたか?

解決

あなたのintsのcinは文の前の新しい行を読んでいないと思います。 cinは、先頭の空白をスキップし、空白を含む数字以外の数字に遭遇すると、数値の読み取りを停止します。

だから:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

あなたのために働くかもしれない

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top