Язык программирования C++ для профессионалов

       

Члены ostream


В классе ostream есть лишь несколько функций для управления выводом, большая часть таких функций находится в классе ios.

class ostream : public virtual ios { //... public: ostream& flush();

ostream& seekp(streampos); ostream& seekp(streamoff, seek_dir); streampos tellp(); //... };

Как мы уже говорили, функция flush() опустошает буфер в выходной поток. Остальные функции используются для позиционирования в ostream при записи. Окончание на букву p указывает, что именно позиция используется при выдаче символов в заданный поток. Конечно эти функции имеют смысл, только если поток присоединен к чему-либо, что допускает позиционирование, например файл. Тип streampos представляет позицию символа в файле, а тип streamoff представляет смещение относительно позиции, заданной seek_dir. Все они определены в классе ios:

class ios { //... enum seek_dir { beg=0, // от начала файла cur=1, // от текущей позиции в файле end=2 // от конца файла }; //... };

Позиции в потоке отсчитываются от 0, как если бы файл был массивом из n символов:

char file[n-1];

и если fout присоединено к file, то

fout.seek(10); fout<<'#';

поместит # в file[10].



Содержание раздела