我是第二个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 关注
- 416 浏览
添加回答
举报
0/150
提交
取消