Я пытаюсь использовать перегруженный ">>" для сканирования ввода из файла.
Проблема в том, что я понятия не имею, как бороться с концом файла. В этом случае мой файл состоит из числа, за которым следуют несколько символов.
Ex:
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 в случае успеха или false, если символ не был буквенно-цифровым.