1

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

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

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

cinこれは通常の入力受信であり、コードの上部に特別なものはありません。このような問題がありましたが、文字列が「Enter」キーで埋められないように、何らかの方法でクリアする必要がある解決策を忘れていました。

4

1 に答える 1

2

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

あなたのために働くかもしれません

于 2008-10-02T19:22:49.197 に答える