求前辈指导

443692487 2012-07-19 10:22:04
#include "iostream"
const int SIZE = 7;
int fill_array(int ar[],int size);
using namespace std;
int main(){
int array[SIZE];
fill_array(array,SIZE);
return 0;
}

int fill_array(int ar[],int size){
int count =0;
for(int i = 0;i<size;i++){
cout<<"Enter value # "<<i+1<<": ";
cin>>ar[i];
if (isalpha(ar[i])){
cout<<"Please input a number!!!"<<endl;
cin>>ar[i];
}
++count;
}
return count;
}
为什么在fill_array函数中,当输入的字符是字母时,提示用户输入一个数字那边总是异常终止呢?谢谢前辈们啦
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
443692487 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你输入的不是数字的时候,cin流的状态变成了失败的状态了。你需要手动恢复了。
if (cin.fail())
{
cin.clear();
cin.sync();
}
[/Quote]
恩恩,今天我看到第七章的c++primer plus 看到这个了,当输入字符时候cin就返回false了,谢谢你啊
寂寞vs爱神 2012-07-20
  • 打赏
  • 举报
回复
恩。不错。
W170532934 2012-07-19
  • 打赏
  • 举报
回复
你输入的不是数字的时候,cin流的状态变成了失败的状态了。你需要手动恢复了。
if (cin.fail())
{
cin.clear();
cin.sync();
}

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧