C ++でいくつかの整数を読み取ってからテキスト行を読み取る
質問
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);
あなたのために働くかもしれない
所属していません StackOverflow