Вам лучше использовать это:
char Reverse(ifstream &inFile) {
char myInput;
while (inFile >> myInput) {
...
}
}
Часто упускают из виду, что вы можете просто проверить, достиг ли входной поток EOF (или какого-либо другого плохого состояния), просто протестировав объект потока. Он неявно преобразуется в bool
, а оператор istreams
bool()
просто вызывает (я считаю) istream::good()
.
Объедините это с тем фактом, что оператор извлечения потока всегда возвращает сам объект потока (так что он может быть связан с несколькими извлечениями, такими как «cin >> a >> b»), и вы получите очень лаконичный синтаксис :
while (stream >> var1 >> var2 /* ... >> varN */) { }
UPDATE
Извините, я не думаю - конечно, это пропустит пробел, который не подойдет для вашего примера обращения содержимого файла. Лучше придерживаться
char ch;
while (inFile.get(ch)) {
}
, который также возвращает объект istream, позволяя неявному вызову good()
.