Язык программирования 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].



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