Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лекция №8 «Ввод-вывод информации в файлы»



Файл – структура данных для хранения информации на устройствах долговременного хранения.

Все функции по обслуживанию файлов возлагаются на ОС. Чтобы выполнить чтение или запись данных из файла, прикладная программа должна реализовать следующие действия:

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

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

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

Обмен данными с файлом функциями из библиотек С++ осуществляется в основном на уровне байт или

простейших структур С++. Более сложные объекты для сохранения в файл должны декомпозироваться на простые элементы.

Запись в файл.

Чтение из файла.

При чтении из файла с помощью оператора «>>» выполняется контроль типа. Это означает, что считываемые символы преобразуются к значению соответствующему типу переменной. Например, если считывается строка в нее помещаются последовательно символы до тех пор, пока не будет встречен символ разделитель. По умолчанию таковым является проблем, запятая, точка с запятой, точка.

Строки с разделителем.

Вывод в файл структурной переменной

Для того, чтобы сохранять в файлах объекты произвольных классов необходимо организовать запись тех свойств, которые относятся к простым типам. Например, чтобы сохранить в файле объект класса string следует с помощью метода.c_str() получить указатель на строку в стиле С++ т.е. символьный массив с нулевым ограничителем. Строка такого типа сохраняется в файле оператором <<. Аналогично любая структурная переменная записывается и считывается по отдельным полям.

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





Дата публикования: 2014-11-26; Прочитано: 180 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...