判断输入的数据是否为长整型

hi_coding 2014-03-29 08:41:16
void Student::setStudentID(long studentID)
{
if (typeid(studentID) == typeid(long))
{
Student::studentID=studentID;
}
else
{
cin.clear();
cout<<"请输入正确的数字"<<endl;
}

}

结果我输入ddd这种字符串,会出现死循环。。。到底要怎样判断数据是否为长整型才对啊?求大神指教
...全文
116 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
浪子丶不回头 2014-03-29
  • 打赏
  • 举报
回复
输入的时候有一个输入缓冲池,程序从缓冲池中拿你输入的数据 需要的类型是整形 但是拿到第一个字符的时候是d 不是整数数据 就放回 应为没有冲缓冲区中拿到数据 所以会再次读取 这样还是先前的那个d 就这样循环 如果你输入3dddd 那样就不会死循环 应为读取数据时读到一个整数数据3 d就丢弃掉

33,311

社区成员

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

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