亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用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 關注
  • 441 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號