我是第二個OOP課程,我的第一堂課是用C#教的,所以我是C ++的新手,目前我正在使用cin練習輸入驗證。所以這是我的問題:這個循環我構建了一個很好的驗證輸入的方法嗎?或者有更常見/可接受的方式嗎?謝謝!碼:int taxableIncome;int error;// input validation loopdo{ error = 0; cout << "Please enter in your taxable income: "; cin >> taxableIncome; if (cin.fail()) { cout << "Please enter a valid integer" << endl; error = 1; cin.clear(); cin.ignore(80, '\n'); }}while(error == 1);
3 回答

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
我不是開啟iostreams異常的忠實粉絲。I / O錯誤不夠特別,因為錯誤通常很可能。我更喜歡使用異常來減少錯誤條件。
代碼也不錯,但跳過80個字符有點武斷,如果你擺弄循環就不需要錯誤變量(bool如果你保留它就應該如此)。你可以將讀取cin直接放入一個if,這可能更像是一個Perl習語。
這是我的看法:
int taxableIncome;
for (;;) {
cout << "Please enter in your taxable income: ";
if (cin >> taxableIncome) {
break;
} else {
cout << "Please enter a valid integer" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
}
除了僅跳過80個字符外,這些只是輕微的狡辯,更多的是首選風格。
- 3 回答
- 0 關注
- 441 瀏覽
添加回答
舉報
0/150
提交
取消