Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KL_PrJAVU230200.doc
Скачиваний:
29
Добавлен:
17.03.2015
Размер:
702.46 Кб
Скачать

Файловый ввод/вывод с прямым доступом

Файловые операции ввода/вывода прямого доступа также используют

потоковые функции-элементы read и write, представленные в предыдущем

разделе. Stream-библиотека имеет ряд функций, позволяющих вам передвигать

указатель потока в любое необходимое положение. Функция-элемент seekg -

одна из таких функций.

Функция-элемент seekg

Прототип для перегруженной функции-компонента seekg:

istream& seekg(long pos);

istream& seekg(long offset, seek_dir dir);

Параметр pos в первой версии определяет абсолютное положение байта в

потоке. Во второй версии параметр offset определяет относительное смещение,

в зависимости от аргумента dir. Аргументы для последнего параметра:

ios::beg С начала файла

ios::cur С текущей позиции файла

ios::end С конца файла

Пример

const BLOCK SIZE = 80

char buff[BLOCK_SIZE] = "Hello World!";

f.open("CALC.DAT", ios::in | ios::out | ios::binary);

f.seekg(3 * BLOCK_SIZE); // продвинутся к блоку 4

f.read((const unsigned char*)buff, BLOCK_SIZE);

cout < buff < endl;

fclose ();

Заключение

Сегодняшний урок представил краткое введение в библиотеку ввода/вывода

C++ и вынес на обсуждение следующие вопросы:

- Общие функции ввода/вывода, включая open, close, good, fail и

оператор !.

- Функция open открывает файловый поток ввода/вывода и поддерживает

попеременный и множественный режимы ввода/вывода. Функция close

закрывает файловый поток. Функции good и fail индицируют успешную

или ошибочную, соответственно, потоковую операцию ввода/вывода.

- C++ позволяет выполнять последовательный потоковый ввод/вывод для

текста с использованием операций < и >, так же как и при помощи

потоковой функции getline. Операция < позволяет записать символы и

строки (а также и другие предопределенные типы данных). Операция >

применяется для - получения символов. Функция getline позволяет вашему приложению

считывать строки с клавиатуры или из текстового файла.

- Последовательный потоковый ввод/вывод двоичных данных использует

потоковые функции write или read для записи или считывания данных

из переменных любого типа.

- Потоковый ввод/вывод прямого доступа для двоичных данных использует

функцию seekg в объединении с функциями read и write. Функция seekg

позволяет вам передвигать потоковый указатель либо в абсолютное,

либо в относительное положение в потоке.

80

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]