Написание программ с использованием файловых операций

Страницы работы

Содержание работы

7.160101.3381.02.08

Зм.

Аркуш

№ Докум

Підпис

Дата

Написание программ с использованием файловых операций

Літ

Лист

Листів

Студент

у

1

НУК  ІАЕ

Викладач

Попов

Лабораторная работа №8

Тема: Написание программ с использованием файловых операций

Цель: Изучить функции для работы с файлами

Теоретические сведения

Файлы

В языке С/С++ файлом считается все – от файла на диске до дисплея или принтера. Выполнив операцию открытия, поток можно связать с конкретным файлом, который можно использовать для обмена данными с программой.

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

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

Каждый поток, связанный с файлом, имеет управляющую структуру типа FILE, которую нельзя модифицировать.

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

 

7.160101.3381.02.08

Лист

 

2

 

Зм.

Лист

№ док

Подпись

Дата

 

Файловая система языка С состоит из нескольких взаимосвязанных функций. В таблице 1 приведены наиболее распространенные из них. Для их использования необходим заголовочный файл stdio.h. В программах на языке С++ можно также применять заголовочный файл <cstdio>.

Таблица 1. наиболее распространенные функции ввода-вывода.

Функция

Операция

fopen()

Открывает файл

fclose()

Закрывает файл

putc()

Записывает символ в файл

fputc()

Тоже, что и putc()

getc()

Считывает символ из файла

fgetc()

Тоже, что и getc()

fgets()

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

fputc()

Тоже, что и gets()

fseek()

Устанавливает курсор на заданный байт файла

ftell()

Возвращает текущую позицию курсора

fprintf()

Файловый аналог функции printf()

fscanf()

Файловый аналог scanf()

feof()

Возвращает истинное значение, если достигнут конец файла

ferror()

Возвращает истинное значение, если произошла ошибка

rewind()

Устанавливает курсор в начало файла

remove()

Стирает файл

fflush()

Очищает поток

Указатель файла

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

FILE *fp;

Открытие файла

Функция fopen() открывает поток и связывает его с файлом. Затем она возвращает указатель на этот файл. Наиболее часто файлом считается физический файл, распо-

 

7.160101.3381.02.08

Лист

 

3

 

Зм.

Лист

№ док

Подпись

Дата

 

ложенный на диске. Прототип функции fopen() имеет следующий вид.

FILE *fopen (const char *имя_файла, const char *режим);

Здесь параметр имя_файла прелставляет собой указатель на строку символов, которая задает допустимое имя файла и может включить в себя описание пути к нему. Строка, на которую ссылается указатель режим, определяет предназначение файла. Допустимые значения параметра режим представлены в таблице 2.

Таблица 2. Допустимые значения параметра режим.

Значение

Смысл

r

Открыть текстовый файл для чтения

w

Создать текстовый файл для записи

a

Добавить запись в конец текстового файла

rb

Открыть бинарный файл для чтения

wb

Создать бинарный файл для записи

ab

Добавить записи в конец бинарного файла

r+

Открыть текстовый файл для чтения и записи

w+

Создать текстовый файл для чтения и записи

a+

Добавить записи в конец текстового файла или создать текстовый файл для чтения и записи

r+b

Открыть бинарный файл для чтения и записи

w+b

Создать бинарный файл для чтения и записи

a+b

Добавить записи в конец бинарного файла или создать бинарный файл для чтения и записи

Пример:

FILE *fp;

fp = fopen (“test”,”w”);

Создает текстовый файл с именем test для записи в текущем каталоге. При неудачном открытии fopen() возвращает NULL.

Закрытие файла

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

7.160101.3381.02.08

Лист

4

Зм.

Лист

№ док

Подпись

Дата

Похожие материалы

Информация о работе