Текстовые файлы. Файловый ввод и вывод данных

Связь между программой и внешним файлом, размещенном на диске, осуществляется через посредника. Таким посредником является – переменная файлового типа.

В программе, где должна использоваться переменная файлового типа должна быть предусмотрена директива # include <fstream.h>. Этой директивой подключается библиотечный файл fstream.h, который содержит все необходимые инструменты для работы с файловыми переменными.

Как и любую переменную, используемую в программе, файловую переменную необходимо описать.

Синтаксис оператора описания файловой переменной имеет вид:

fstream имя переменной;

Например: fstream f1;

Здесь fstream – ключевое слово, играющее роль имени типа переменной,

f1 – имя переменной.

Перемещение информации с внешнего файла в оперативную память и наоборот осуществляется через промежуточную буферную память.

Буферная память – это участок оперативной памяти компьютера (ОЗУ), который выделяется автоматически сразу же после открытия файловой переменной и освобождается после закрытия файловой переменной. Размер буферной памяти можно устанавливать по своему усмотрению или использовать по умолчанию. Использование буферной памяти объясняется стремлением согласовать работу «скоростной» электронной части компьютера (центральный процессор, оперативная память) с «тихоходной» электромеханической частью (дисковод). Электронная часть компьютера быстро обрабатывает данные и поставляет их к периферийным устройствам (дисководу). Однако скорость «потребления» этих данных дисководом значительно ниже. Это сдерживает работу процессора, происходит «затоваривание» данными. Чтобы избежать этой ненужной задержки, и используют буферную память. Буферная память играет роль своеобразного накопителя данных, некого склада. В этом случае электронная часть компьютера работает без задержки со своей обычной скоростью, поставляя данные в буферную память, а из буферной памяти эти данные потребляются дисководом со своей скоростью.

Для перемещения информации с внешнего файла в память компьютера буферная память также необходима. В то время, как с внешнего файла будут медленно поступать данные в буферную память, процессор может выполнять другие операции, а после накопления этих данных они быстро, за один прием, переместятся в оперативную память.

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

Функция open()

Эта функция устанавливает связь между файловой переменной и физическим файлом, одновременно она открывает физический файл для чтения или записи. Синтаксис этой функции следующий:

open (сhar имя физ. файла[ ], ios::режим доступа);

open, ios:: ключевые слова;

сhar имя физ. файла[ ] – символьный массив, указывающий путь к физическому файлу и его имя. Если физический файл находится в текущем каталоге (там, где и программа), то указывается только имя файла;

режим доступа – указывает на то, с какой целью открывается файл (для чтения, для записи или для добавления записи в конец уже имеющейся файла).

– Если файл открывается для чтения, то записывается режим доступа in,

– если файл открывается для записи, то записывается режим доступа out,

– если файл открывается для добавления записи, то записывается режим доступа app.

Внимание! При открытии файла для записи с уже имеющейся информацией с помощью спецификации доступа out вся эта информация удаляется и вместо нее записывается новая информация. Для того, чтобы старую информацию сохранить и добавить новую, следует использовать спецификацию app.

Функция close()

Эта функция обеспечивает правильное закрытие внешнего файла и сохранение данных на диске. Одновременно с этим очищается от данных буферная память (данные перемещаются на диск), и затем освобождается.

Функции eol() и eof ()

Функции eol() и eof () определяют соответственно конец строки ( E nd O f Line ) и конец внешнего файла ( E nd O f F ile) при обнаружении признака их окончания.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow