我正尝试使用重载的“>>”来扫描来自文件的输入。突破重载提取操作符? (C++)
问题是,我不知道如何处理文件结束。 在这种情况下,我的文件是由许多,由几个字符
例:
9rl
8D
6FF
istream &operator>>(istream &is, Move &move)
{
char c;
int i = 0;
c = is.get();
if (!isalnum(c))
return;
move.setNum(c); // I convert the char to an int, but I'l edit it out
while ((c = is.get()) != '\n')
{
move.setDirection(i, c); //sets character c into in array at index i
i++;
} // while chars are not newline
return is;
} // operator >>
测试的字符当我把它作为一个常规函数时,它的字母数字是有效的,但是在这里不起作用,因为它期望返回一个输入流。我试过也返回NULL。建议?
编辑:这是在一个while循环中调用,所以我试图找出一些方法来让这个触发器一些标志,以便我可以跳出循环。在我以前的函数中,我返回了一个布尔值,如果成功或错误返回true,如果字符不是字母数字
而在这里,'错误'将设置移动到null或一些无效状态。 – Tanzelax 2010-02-10 03:09:02
感谢你们俩。返回并标记这一举措是我最终做的 – kevin 2010-02-10 03:18:34