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

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

Система ввода-вывода 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. Что такое поток?

  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

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