Ввод-вывод в файлы
Для ввода/вывода в потоковые объекты
можно применять методы put(),
get(), для связывания объекта с
различными файлами служат методы open(),
close(), для позиционирования в
файле имеются методы seekg(),
seekp(), tellp(). При этом seekg()
назначает или возвращает текущую позицию
указателя чтения, а seekp()
назначает или возвращает текущую позицию
указателя записи. Обе функции могут
иметь один или два аргумента. При вызове
с одним аргументом функции перемещают
указатель на заданное место, а при вызове
с двумя аргументами вычисляется
относительная позиция от начала файла
(ios::beg),
текущей позиции (ios::cur)
или от конца файла (ios::end).
Текущщая позиция определяется методом
tellp().
Для объектов файловых потоков контроль
состояния также производится с помощью
методов, манипулирующих флагами ошибок:
bad()
возвращает ненулевое значение, если
обнаружена ошибка;
clear()
сбрасывает сообщения об ошибках;
eof()
возвращает ненулевое значение, если
обнаружен конец файла;
fail()
возвращает ненулевое значение, если
операция завершилась неудачно;
good()
возвращает ненулевое значение, если
флаги ошибок не выставлены;
rdstate()
возвращает текущее состояние флагов
ошибок.
Если флаги показывают наличие ошибки,
все попытки поместить в поток новые
объекты будут игнорироваться, то есть
состояние потока не изменится.