ЛАБОРАТОРНАЯ РАБОТА N 2

Программирование операций ввода-вывода

 

1.Некоторые библиотечные функции для работы с файлами

 

Функции файлового ввода-вывода используют указатель файлового потока (указатель на файл): FILE *f .

Для открытия файла используется функция:

FILE *fopen(const char *filename, const char *mode);

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

Некоторые значения параметра mode:

«r» - открытие текстового файла для чтения;

«w» - создание текстового файла для записи;

«a» - открытие текстового файла для добавления.

В случае неудачной попытки открыть файл fopen возвращает NULL.

Функция int fclose(FILE *f) закрывает файл.

Функция int feof(FILE *f) возвращает ненулевое (истинное) значение при обнаружении конца файла.

Функция int fputs(char *s, FILE *f) записывает строку символов в файл (при этом символ конца строки в файл не записывается).

Функция char *fgets(char *s,int n, FILE *f) читает не более n-1 байт из файла в строку s, прекращая чтение при обнаружении символа новой строки или конца файла. Прочитанная строка дополняется нуль-терминатором (‘’).

Более универсальными по использованию для ввода-вывода являются функции fscanf и fprintf.

Функция int fscanf(FILE *f, const char *fmt, <аргументы ввода>) вводит данные (строки, целые и вещественнные числа и т.д.) в формате, определяемом строкой fmt. В качестве аргументов ввода следует указывать не сами переменные, а их адреса.

Функция int fprintf(FILE *f, const char *fmt, <аргументы вывода>) выводит данные (строки, целые и вещественнные числа и т.д.) в формате, определяемом строкой fmt.

Для ввода строк аргумент fmt должен содержать спецификацию формата вида: “%s”.

Для использования вышеперечисленных функций следует объявить заголовочный файл stdio.h .

 

 

2.Задание на лабораторную работу

 

Написать программу выполнения в соответствии с вариантом задания одной из нижеперечисленных операций с текстовыми файлами.

1.В заданном файле найти запись с заданным номером и записать ее в конец другого файла.

2.В заданном файле определить местоположение заданной строки в виде номера записи, ее содержащей.

3.Сформировать текстовый файл на основе содержимого заданного текстового файла, поменяв местами две записи с заданными номерами.

4.Выполнить копирование записей заданного файла в другой файл в обратном порядке.

5.Сформировать текстовый файл на основе содержимого заданного текстового файла, удалив запись с заданным номером.

6.Разбить заданный файл пополам, записав каждую половину в новый файл.

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

8.Разбить заданный файл на два относительно точки деления, заданной в виде номера записи исходного файла.

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

10.Выполнить слияние содержимого двух заданных файлов в третий файл.