cpp(第六章)

1.

#include <iostream>
#include <limits>

int main()
{
    int choice_i= 0;
    while(choice_i!= 5)
    {
         std::cout<<"enter integers: ";
         std::cin>>choice_i;
        if(0==  std::cin.good())
        {
             std::cin.clear();
             std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'
');
        }
    }
    return 0;
}

cin>>int,如果输入字母或者其他,着读取失败,输入状态被置成失效位failbit,输入将被阻断,重复执行std::cout<<"enter integers: ",应对办法先检查输入状态,然后

输入状态清零cin.clear(),接着清空输入缓冲区std::cin.ignore(std::numeric_limits<std::streamsize>::max(),' ')。

2.补充上面,更为简单的way

#include <iostream>


int main()
{
    using std::cin;
    using std::cout;
    using std::endl;
    double arr_d[10]= {0};
    int n= 0;
    cout<<"enter the numbers ";
    while (cin>>arr_d[n] && n< 10)
    {
        cout<<"enter the numbers ";
        n++;
    }
    if (!cin.good())
    {
        cin.clear();
        while (cin.get()!= '
')
            continue;
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/Call-C/p/5561759.html