次のコードは正常に機能し、ユーザーが適切な量のアイテムを入力したかどうかも確認しますが、入力の末尾に空の行があると失敗します。
string item1, item2, item3;
while(cin.good) {
//this allows me to both check if user input enough items
//EDIT: and if items are of right type so I can cerr
if (cin >> item1 && cin>> item2 && cin>> item3) {
doStuff(item1,item2,item3);
}else {
cerr<<"bad input! Not enough input items or wrong type"<<endl;
}
}
末尾に空行がある場合に状況を解決するために、cin.good を別のものに変更できますか? 他のソリューションも受け入れます。
編集: item1 が間違ったタイプの場合、エラーメッセージを確認できないため、 while(cin >> item1) を使用できないことに気付きました。