Бьерн Страуструп - Язык программирования С++. Главы 8-10 - Члены ostream
ОГЛАВЛЕНИЕ
Страница 58 из 65
10.4.3 Члены ostream
В классе ostream есть лишь несколько функций для управления выводом, большая часть таких функций находится в классе ios.class ostream : public virtual ios {Как мы уже говорили, функция flush() опустошает буфер в выходной поток. Остальные функции используются для позиционирования в ostream при записи. Окончание на букву p указывает, что именно позиция используется при выдаче символов в заданный поток. Конечно эти функции имеют смысл, только если поток присоединен к чему-либо, что допускает позиционирование, например файл. Тип streampos представляет позицию символа в файле, а тип streamoff представляет смещение относительно позиции, заданной seek_dir. Все они определены в классе ios:
//...
public:
ostream& flush();
ostream& seekp(streampos);
ostream& seekp(streamoff, seek_dir);
streampos tellp();
//...
};
class ios {Позиции в потоке отсчитываются от 0, как если бы файл был массивом из n символов:
//...
enum seek_dir {
beg=0, // от начала файла
cur=1, // от текущей позиции в файле
end=2 // от конца файла
};
//...
};
char file[n-1];и если fout присоединено к file, то
fout.seek(10);поместит # в file[10].
fout<<'#';