Составители:
Рубрика:
92
вый номер следующего байта в файле для считывания или записи. Этими функ-
циями-элементами являются seekg (позиционировать при извлечении из пото-
ка) для класса istream и seekp (позиционировать при помещении в поток) для
класса оstream. Кроме того, любой объект класса istream имеет указатель get,
показывающий номер очередного вводимого в файл байта, а
любой объект
класса оstream имеет указатель set, показывающий номер очередного выводи-
мого из файла байта. Оператор fin . seekg(0); позиционирует указатель на нача-
ло файла. Аргумент функции seekg( ) обычно является целым типа long, а вто-
рой аргумент, который может быть задан, показывает направление
позиционирования. Оно может быть ios::beg при позиционировании относи-
тельно
начала потока (используется по умолчанию), ios::cur – для позициони-
рования относительно текущей позиции и ios::end – для позиционирования от-
носительно конца потока.
Примеры:
// Позиционировать fileObject на n-й байт( полагаем ios::beg)
fileObject . seekg(n );
// Позиционировать fileObject на n байтов вперед
fileObject . seekg(n , ios::cur );
// Позиционировать fileObject на i-й байт от конца файла
fileObject . seekg(n , ios::end);
// Позиционировать fileObject на конец файла
fileObject . seekg(0 , ios::end);
Те же самые операции могут быть выполнены с помощью функции-элемента
seekp класса оstream. Функции-элементы tellg и tellp возвращают текущие по-
зиции указателей соответственно get и set. Следующий оператор присваивает
переменной location = fileObject. tellg(); значение указателя get.
Программа на рис. 14.3 позволяет менеджеру по кредитам отображать на
эк-
ране информацию о клиентах с нулевой задолженностью, информацию о кли-
ентах-задолжниках и клиентах, которым должна компания. Программа отобра-
жает меню и позволяет по каждой из трех опций получить соответствующую
информацию по кредитам.
// Программа запроса кредитной информации
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
void output( int , char* ,float ) ;
int main()
{
clrscr();
ifstream fin("Clients"); //открытие файла для записи
if(!fin)
Рис. 14.3
Страницы
- « первая
- ‹ предыдущая
- …
- 90
- 91
- 92
- 93
- 94
- …
- следующая ›
- последняя »
