logo
шпоры по ООП

37.Методы позиционирования потоков.

Классы istream и ostream содержат в себе методы позиционирования потока, которые в основном используются для файловых потоков.

Методы позиционирования потоков:

класс istream :

istream& seekg(long) - установка позиции от начала потока;

istream& seekg(long,seek_dir) - установка позиции потока, где

seek_dir может принимать значения:

ios::beg - установка от начала,

ios::cur - установка от текущей позиции,

ios::end - установка от конца потока,

long tellg() - возвращает позицию в потоке;

класс ostream :

istream& seekp(long) - установка позиции от начала потока;

istream& seekp(long,seek_dir) - установка позиции потока;

long tellp() - возвращает позицию в потоке.

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

char file[n-1];

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

fout.seek(10);

fout<<'#';

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

Функции позиционирования работают одинаково в istream и в ostream. Различные окончания показывают, какая именно позиция (ввода или вывода) устанавливается. Это необходимо, поскольку в производном классе iostream от классов ostream и istream нужно отдельно следить за позициями ввода и вывода.