cin输入类型判断问题

苏伊青 2013-08-28 12:48:08
int a;
cin >> a;
if(cin.fail())
{
cout << "wrong data!";
cin.clear();
cin.sync()
}


当我输入一个double型,如1.2时,cin.fail()是false
应如何修改才能判断类型错误呢
...全文
484 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-08-28
  • 打赏
  • 举报
回复
摒弃cin,使用scanf http://bbs.csdn.net/topics/360055953
七擒关羽 2013-08-28
  • 打赏
  • 举报
回复

int a;
if(!(cin >> a))
{
    //这个就可以输出错误的,抛出异常
    cout << "wrong data!";
    cin.clear();
    cin.ignore();
}
大尾巴猫 2013-08-28
  • 打赏
  • 举报
回复
用cin.peek()判断下一个字符
	int x;
	cin >> x;
	if (cin.peek() != ' ' && cin.peek() != '\n')
	{	
		cout << "wrong data!";
		cin.clear();
		cin.ignore();
	}
woshinia 2013-08-28
  • 打赏
  • 举报
回复
cin相关函数不太了解,不过我想你可以用字符串来接收,然后手动判断每个字符是否为数字。如果可以,再用atoi转换成int。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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