为了账号安全,请及时绑定邮箱和手机立即绑定

使用cin-C ++的良好输入验证循环

使用cin-C ++的良好输入验证循环

C++
慕慕森 2019-09-03 20:24:27
我是第二个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个字符外,这些只是轻微的狡辩,更多的是首选风格。


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信