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(),'\n'); } } return 0; }
cin>>int,如果输入字母或者其他,着读取失败,输入状态被置成失效位failbit,输入将被阻断,重复执行std::cout<<"enter integers: ",应对办法先检查输入状态,然后
输入状态清零cin.clear(),接着清空输入缓冲区std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n')。
2.补充上面,更为简单的way
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #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()!= '\n' ) continue ; } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步