Скачиваний:
2
Добавлен:
01.05.2025
Размер:
361.98 Кб
Скачать

Лабораторная работа n 7

РАБОТА С ФАЙЛАМИ

Цель работы: научиться создавать файлы, записывать в них информацию, считывать информацию из файла и выводить её на экран; уметь определять конец файла при считывании из него информации.

Программа работы

1. Создать файл одним из двух способов:

а) программно;

б) с помощью редактора.

2. В созданный файл записать исходные данные (координаты точек, для которых надо проверить: принадлежат данные точки заданной области или нет).

3. Закрыть файл после записи.

4. Открыть файл, прочитать координаты точек и определить, принадлежат точки заданной области или нет.

5. Результаты вывести на экран.

6. Ответить на контрольные вопросы.

7. Составить отчет.

Методические указания

Описание файла необходимо сделать двумя способами:

  1. так, как это делается для языка C;

  2. так, как это делается для языка C++.

Прежде чем работать с файлом, необходимо определить его внутреннее имя, которое называется указателем файла. Указатель файла указывает на структуру, которая содержит информацию о файле. Эта структура расположена в файле stdio> с именем FILE. Описание указателя и функции открытия файла выполняется следующим образом: FILE *fp, *fopen();

где fp – указатель на файл( файловая переменная);

fopen() – функция открытия файла.

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

fp = fopen(name,mode);

где name – имя файла;

mode - режим открытия файла:

w – для записи;

r - для чтения;

a– для добавления данных к файлу.

Запись в файл можно осуществить с помощью следующих функций:

int putc(int c, FILE *stream) – запись символа в файл;

int fputc( int c, FILE *stream ) – запись символa в файл;

int fputs( const char *s, FILE *stream) – запись строки символов в файл.

Чтение из файла осуществляют следующие функции:

int getc( FILE *stream ) – читает один символ из файла;

int fgetc( FILE *stream ) - читает один символ из файла;

char fgets( char *s, int n, FILE *stream) – читает n символов из файла в строку s.

Например:

fp = fopen( name, “ w “ ); - открытие файла для записи;

putc( c, fp );

close( fp ) – закрытие файла.

fp = fopen( name, “ r “ ); - открытие файла для чтения;

с = getc( fp );

close( fp );

Для форматного ввода / вывода можно использовать функции fscanf и fprintf.

Рассмотренные функции осуществляют последовательный доступ к данным в файле. Для произвольного доступа к данным используется функция fseek( fp, offset, код );

где fp – файловый указатель;

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

< код > - определяет начальную точку:

код положение в файле

  1. начало файла

  2. текущая позиция

  3. конец файла

Функция fseek() возвращает 0, если операция прошла успешно и (-1), если - с ошибкой.

Замечание: нумерация данных в файле начинается с нуля.

В C++ работа с файлом пользователя осуществляется с помощью функций, находящихся во включаемом файле <fstream> . Открытие файла можно осуществить следующим образом: для чтения – ifstream in (< имя файла > ); для записи – ofstream out ( < имя файла > );

где in, out – файловые указатели для чтения и записи.

Для закрытия файла необходимо писать следующим образом: in.close(), out.close().

Произвольный доступ к данным можно осуществить с помощью следующих функций – seekg() и seekp().

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]