Сброс флагов потока
Задание.
Напишите функцию, получающую и возвращающую ссылку на объект класса istream. Функция должна читать данные из потока до тех пор, пока не будет достигнут конец файла. Функция должнавыводить прочитанные данные на устройство вывода. Перед возвращением потока верните все её флаги в допустимое состояние. Проверьте созданную функцию, передав ей объект cin в качестве аргумента. (Липпман, Язык программирования С++. Вводный курс. 4-ое издание, Упражнение 8.3, 8.4, стр 317). Вопрос. При вводе цифры или знака конца файла (Ctrl+Z), функция срабатывает как положено. Но при вводе символа, функция бесконечно выдает сообщение об ошибке, хотя должна пропустить итерацию и снова запросить ввод данных. Почему так происходит, в чем ошибка? Заранее спасибо. Код:
#include <cstdlib> Код:
if (mycin.fail()){ |
Перекомпилировал на MS Visual Studio 2010 (до этого DevC++ использовал с его g++). Никаких изменений. Значит, что-то с потоками. Какие могут быть проблемы? Где я что-то недопонял?
|
Время: 16:52. |
Время: 16:52.
© OSzone.net 2001-