与えられた入力が有効であることを確認するために、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 回単語が出力されることを除いて、期待どおりに機能します。
なぜこれが起こっているのか誰にも分かりますか?ありがとう。