【发布时间】:2016-11-20 12:25:18
【问题描述】:
抱歉这个有点初学者的问题,但我已经解决了几天,无法找到解决方案。
我基本上是从文件中读取整数,这些文件应该有一定数量的数字,为了这个问题,让我们说 40。当文件少于或多于 40 时,我可以返回错误整数。但是,如果那里碰巧有一个非数字字符,我正在努力弄清楚如何返回错误。 这就是我目前正在做的事情:
int number = 0;
int counter = 0;
while(inputstream >> number)
{
// random stuff
counter++;
}
if (counter < 40)
return error;
在这一点上,我有点困惑该去哪里。当输入流不是 int 时,我的 while 循环将终止,但有两种情况可能发生这种情况,其中存在非整数字符,或者已到达文件末尾。如果我们在 eof,我的错误信息很好,并且整数少于 40。但是,如果它在某处遇到非整数,我们也可能小于 40。我希望能够确定两者之间的区别,但很难弄清楚如何做到这一点。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
使用
fail()和/或eof()确定解析失败的原因。 -
感谢各位的帮助。事实证明,我在脑海中把它复杂化了。非常感谢。
标签: c++