- •Лабораторная работа №7 Работа с файловыми потоками в с. Текстовые файлы.
- •Теоретические сведения Форматированный консольный ввод-вывод
- •Файловая система ansi c
- •Указатель на файл
- •Открытие файла
- •Запись символа
- •Чтение символа
- •Закрытие файла
- •Требованияк отчету.
- •Контрольные вопросы:
- •Лабораторное задание.
Запись символа
Система ввода-вывода ANSICопределяет две эквивалентные функции, выводящие символ –putc()иfputc(). Функцияputc()используется для записи символов в поток, ранее открытый для записи с помощью функцииfopen(). Прототип дляputc()следующий:
int putc(int ch, FILE *fp);
где fp– указатель на файл, возвращённыйfopen(), аch– выводимый символ. По историческим причинамchопределена какint, но используется только младший байт.
Если putc()выполнена успешно, она возвращает выведенный символ. В противном случае возвращаетEOF.
Чтение символа
Имеется две эквивалентные функции, предназначенные для ввода символа – getc()иfgetc(). Функцияgetc()используется для чтения символов из потока, открытого на чтение с помощьюfopen(). Прототипgetc()следующий:
int getc(FILE *fp);
где fp– это указатель на файл типаFILE*, возвращённыйfopen(). По традицииgetc()возвращает целое, но старшие байты установлены в 0.
Функция getc()возвращаетEOFпри достижении конца файла.
Закрытие файла
Функция fclose()используется для закрытия потока, ранее открытого с помощьюfopen(). Она сохраняет в файл данные, находящиеся в дисковом буфере, и выполняет операцию системного уровня по закрытию файла.
Имеет прототип:
int fclose(FILE *fp);
где fp– это указатель на файл, возвращённыйfopen(). Если возвращён 0, то операция закрытия выполнена успешно, а еслиEOF, то, значит, была ошибка.
Помимо основных функций ввода-вывода, система буферизированного ввода-вывода содержит fprintf()иfscanf(). Данные функции ведут себя также, как иprintf()иscanf(), за тем исключением, что работают с дисковыми файлами. Они имеют следующие прототипы:
int fpintf(FILE *fp, const char * форматная_строка, …);
int fscanf(FILE *fp, const char * форматная_строка, …);
где fp– это указатель на файл возвращаемыйfopen().
Требованияк отчету.
Отчет должен содержать:
наименование и цель работы;
краткие теоретические сведения;
формулировку задания своего варианта;
схему алгоритма
текст программы для варианта задания, соответствующего номеру фамилии студента в группе (если студент закреплен за определенной ЭВМ, имеющей номер, то номеру ЭВМ);
результаты выполнения программы.
Контрольные вопросы:
Что такое поток?
Что представляет собой файловый указатель?
Перечислить режимы доступа к файлу.
Как открыть и как закрыть файл?
Лабораторное задание.
Для выполнения лабораторной работы необходимо составить программу согласно своему варианту задания.
Таблица вариантов
Номер варианта |
Задание |
1, 12, 23 |
Дан файл f, компоненты которого являются целыми числами. Записать в файлg, компоненты файлаf, исключив повторные вхождения чисел. |
2, 13, 24 |
Дан файл f, компоненты которого являются действительными числами. Найти:
|
3, 14, 25 |
Дан символьный файл f. Подсчитать число вхождений в файл каждой из буквa,b,c,d,e,f. Результат вывести в файл gв виде таблицы с комментариями. |
4, 15, 26 |
Дан файл f, компоненты которого являются целыми числами. Записать в файлgвсе четные числа исходного файла, в файлh– все нечетные. Порядок следования чисел сохраняется. Записать в файлgиhкомментарии. |
5, 16, 27 |
Дан текстовый файл, содержащий программу на языке Си. Проверить эту программу на соответствие числа открывающих и закрывающих фигурных скобок. |
6, 17, 28 |
Дан символьный файл f. Найти и записать в файлgсамое длинное слово файлаf, снабдив его комментарием. |
7, 18 |
Дан файл f, компоненты которого являются целыми числами. Получить в файлеgвсе компоненты файлаf:
Записать в файл gкомментарий. |
8, 19 |
Дан файл f. Создать два файла, записав в первый из них все четные числа, а во второй – все нечетные. |
9, 20 |
Дан файл f. Создать два файла, записав в первый из них среднее геометрическое всех четных чисел, а во второй – среднее арифметическое всех нечетных чисел. |
10, 21 |
Дан числовой файл f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на 6. Записать эти значения в файлg, а все остальные – в файлh. |
11, 22 |
Дан текстовый файл f. Определить, являются ли первые два символа цифрами и если да, то четно ли это число. Записать его в файлg, если оно четно и вh,если оно нечетно. |