Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labor7.doc
Скачиваний:
17
Добавлен:
05.06.2015
Размер:
70 Кб
Скачать
☆

Запись символа

Система ввода-вывода ANSI C определяет две эквивалентные функции, выводящие символ – 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. Что такое поток?

  2. Что представляет собой файловый указатель?

  3. Перечислить режимы доступа к файлу.

  4. Как открыть и как закрыть файл?

Лабораторное задание.

Для выполнения лабораторной работы необходимо составить программу согласно своему варианту задания.

Таблица вариантов

Номер варианта

Задание

1, 12, 23

Дан файл f, компоненты которого являются целыми числами. Записать в файл g, компоненты файла f, исключив повторные вхождения чисел.

2, 13, 24

Дан файл f, компоненты которого являются действительными числами. Найти:

  1. наибольшее из значений компонент f;

  2. наименьшее из значений компонент с четными номерами;

  3. наибольшее из значений модулей компонент с нечетными номерами;

  4. сумму наибольшего и наименьшего из значений компонент файла f;

  5. разность первой и последней компонент файла 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:

  1. являющиеся четными числами;

  2. делящиеся на 3 и не делящиеся на 7;

  3. являющиеся точными квадратами.

Записать в файл g комментарий.

8, 19

Дан файл f. Создать два файла, записав в первый из них все четные числа, а во второй – все нечетные.

9, 20

Дан файл f. Создать два файла, записав в первый из них среднее геометрическое всех четных чисел, а во второй – среднее арифметическое всех нечетных чисел.

10, 21

Дан числовой файл f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на 6. Записать эти значения в файл g, а все остальные – в файл h.

11, 22

Дан текстовый файл f. Определить, являются ли первые два символа цифрами и если да, то четно ли это число. Записать его в файл g, если оно четно и в h ,если оно нечетно.

7

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