与えられた入力が有効であることを確認するために、Bjarne Stroustrup による Programming: Principles and Practice in C++ からこのコードを採用しました。
#include <iostream>
using namespace std;
int main()
{
cout << "Please enter your first name and age: ";
string first_name = "???";
int age = -1;
cin >> first_name >> age;
while (!cin) {
cin.clear();
cout << "Sorry, can you enter that again? ";
cin >> first_name >> age;
}
cout << "Hello, "<<first_name<<"! (age "<<age<<")\n";
return 0;
}
"Sorry, can you enter that again? "
これは、2 番目の入力の前と後に 1 回、2 回単語が出力されることを除いて、期待どおりに機能します。
なぜこれが起こっているのか誰にも分かりますか?ありがとう。