没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
cin 和 scanf 输入错误的处理
2011-09-02 18:52:07|分类:技术篇|字号订阅
cin 是C++中常用的标准输入函数,但是在调用此函数时也常常会遇到一些
问题如:
int main(void)
{
int n ;
cin>>n;
//输入 1--100 的整数
while( n<1 || n>100)
{
cout<<"error"<<endl;
cin>>n;
}
system("pause");
return 0;
}
在执行上段程序时如果输入的是字符,那么会出现刷屏的 error,用户无法再次
输入,出现这个问题的原因就是,cin 如果没有接收到所需要的数据类型的数
据时,并不会清空缓存,以上代码在运行后,如果输入一个字符串时,由于
cin 需要一个整型数据,可是当前输入缓冲中的数据并不是一个整型的数据,
那么 cin 会直接退出,并返回 0,表示读到 0 个数,同时不会改为输入缓冲,
这样在打印出"error"后,会进入到下一轮的循环之中,这时由于输入缓冲中还
有数据,cin 不会阻塞,而是直接返回,可是发现缓冲中的数据不是所要的数
据,这样返回 0.....使得循环一直运行下去,而不可能因为用户的再次输入退出
循环。
Huang_Dabai
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2