Функция-компонент
istream istream::putback(char c);
возвратит обратно в istream один символ c; если этот символ не может быть помещен обратно, то устанавливается состояние потока "отказ".
Позиционирование потока
Функция seekg() может содержать один или два аргумента: в качестве первого – требуемая позиция курсора или величина смещения, если присутствует второй аргумент; второй - смещение на величину первого аргумента. Второй аргумент может быть один из флагов:
Флаг | Назначение |
ios::beg ios::cur ios::end | Смещение от начала файла Смещение от текущего положения курсора Смещение от конца файла |
Пример:
io.seekg(5,ios::end);
io.seekg(5,ios::beg);
Пример: Выполнить чтение из файла построчно по 80 символов в каждой строке с выводом считанных данных на экран.
#include <fstream.h>
#define col 80
void main()
{
char str[col];
ifstream fstr(“a.cpp”);
while(fstr){
fstr.getline(str,col);
cout<<’\n’<<str;
}
fstr.close();
}
Класс ostream
Функции управления потоковым выводом сосредоточены в классе оstream. С каждым из объектов этого класса и его производных связан объект класса streambuf. Функции класса оstream, доступные его потомкам, перечислены в таблице.
|
|
Функция | Назначение |
opfx | Вызывается перед операцией записи для проверки наличия ошибок в потоке |
osfx | Вызывается после каждой операции записи для очистки буфера |
put | Записывает в поток одиночный байт |
write | Записывает в поток требуемое число байтов |
flush | Очищает буфер потока; аналогичное действие выполняет манипулятор flush |
seekp | Перемещает маркер, обозначающий текущую позицию записи, на требуемую позицию в потоке |
tellp | Возвращает позицию маркера записи |