Хелпикс

Главная

Контакты

Случайная статья





return 0;. Ввод-вывод с произвольным доступом. Примеры программ. using namespace std;. int main(). const int len = 81;. char word[len], line[len], end_word[] = done;. return -1;



return 0;

}

2.3.5 Ввод-вывод с произвольным доступом

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

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

· в открытом файле можно произвольно чередовать операции чтения и записи;

· ввод-вывод с произвольным доступом является по преимуществу бесформатным.

Для позиционирования потока используются функции seekg() и seekp().

Разница между ними в том, что первая перемещает позицию чтения в потоке, а вторая устанавливает новую позицию в выходном потоке. Если используется поток типа fstream, и он открыт в режиме чтения-записи, то все равно, какую функцию применять для позиционирования.

Для определения текущей позиции tellg() и tellp(). Первая возвращает позицию чтения во входном потоке, а вторая – позицию в выходном потоке.

2.4 Примеры программ

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

Пример 11.3 Поиск вхождения слова в файле

#include "stdafx.h"

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

const int len = 81;

char word[len], line[len], end_word[] = "done";

 

//пересоздадим файл и откроем для чтения/записи

fstream f("lab11.txt", ios::in | ios::out | ios::trunc);

if (!f)

{

cout << "Ошибка открытия файла" << endl;

return -1;

}

//введем несколько строк для дальнейшего поиска в них



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.