![]()
|
|||||||
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; } //введем несколько строк для дальнейшего поиска в них
|
|||||||
|