[quote=引用 6 楼 mittwyc 的回复:] [quote=引用 3 楼 u010165006 的回复:] 用getline和atoi可否?
[quote=引用 7 楼 mittwyc 的回复:] [quote=引用 5 楼 mittwyc 的回复:] [quote=引用 4 楼 qq423399099 的回复:] [quote=引用 2 楼 mittwyc 的回复:] [quote=引用 1 楼 qq423399099 的回复:] 当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
[quote=引用 3 楼 u010165006 的回复:] 用getline和atoi可否?
[quote=引用 4 楼 qq423399099 的回复:] [quote=引用 2 楼 mittwyc 的回复:] [quote=引用 1 楼 qq423399099 的回复:] 当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
[quote=引用 5 楼 mittwyc 的回复:] [quote=引用 4 楼 qq423399099 的回复:] [quote=引用 2 楼 mittwyc 的回复:] [quote=引用 1 楼 qq423399099 的回复:] 当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
用getline和atoi可否?
[quote=引用 2 楼 mittwyc 的回复:] [quote=引用 1 楼 qq423399099 的回复:] 当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
[quote=引用 1 楼 qq423399099 的回复:] 当cin尝试将输入的字符串读为int型数据失败后,会产生一个错误状态--cin.fail().而要用cin读取输入流中的数据,输入流必须处于无错误状态。由于错误状态的存在,后续的cin都会出错 cin.clear();是用来更改cin的状态标示符的。 cin.sync();是用来清除缓存区的数据流的。 楼主在while循环中加入这两句就好了 while(int(num/10000)!=0) { cout << "请输入一个不多于5位的正整数:"; cin>>num; cin.clear(); cin.sync(); }
65,186
社区成员
250,526
社区内容
加载中
试试用AI创作助手写篇文章吧