- •Министерство образования Республики Беларусь
- •Часть 1.Методически указания по курсу “Вычислительная техника и программирование
- •Содержание
- •Лабораторная работа №1 Линейный вычислительный процесс Цель работы
- •Операторы вывода информации
- •1. Формат, указывающий компилятору вид выводимой информации, признаком формата является символ %.
- •2. Управляющие символы:
- •Стандартные математические функции
- •Варианты индивидуальных заданий
- •Варианты индивидуальных заданий
- •Циклы типа while и do – while
- •Вложенные циклы
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа №4 Массивы в языке с
- •Многомерные массивы
- •Контрольные вопросы
- •Лабораторная работа №5 Функции пользователя
- •Область действия переменных
- •Контрольные вопросы
- •Лабораторная работа №6 строки и структуры
- •Краткие теоретические сведения
- •Контрольные вопросы
- •Лабораторная работа №7 Файлы в языке с
- •Краткие теоретические сведения
- •Посимвольный ввод-вывод
- •Построчный ввод-вывод
- •Блоковый ввод-вывод
- •Контрольные вопросы
- •Лабораторная работа №8 Графический режим работы в языке с
- •Kраткие теоретические сведения
- •Функции для подготовки графической системы
- •Основные функции для получения изображения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Задание опций интегрированной среды
- •Набор текста программы
- •Компиляция, редактирование связей, запуск программы на выполнение
- •Многофайловая компиляция
- •Отладка программы
- •Использование глобальных переменных, объявленных вне файла
- •Литература
- •Учебное издание
Контрольные вопросы
Как описываются строки в языке С?
Чем отличаются функции scanf() и gets(), printf() и puts()?
Поясните термин “указатель на структуру”.
Лабораторная работа №7 Файлы в языке с
Цель работы
Изучить способы создания и работы с файлами в языке С.
Краткие теоретические сведения
Файл – это набор данных, размещенный на внешнем носителе и рассматриваемый в процессе обработки и пересылке как единое целое.
Прежде, чем начать работать с файлом, его нужно открыть для доступа, т.е. создать и инициализировать область данных, которая содержит информацию о файле: имя, путь и т.д.
В алгоритмическом языке «С» это делает функция fopen. Она связывает физический файл на носителе, например B:\LR7.CPP, с логическим именем в программе. Логическое имя – это указатель на файл, т.е. на область памяти, где храниться информация о файле. Указатели на файлы необходимо объявлять. Формат объявления такого указателя следующий:
FILE *указатель на файл;
Например:
FILE *f;
f=fopen ("B:\LR7.СPP", "w");
Символ "w" определяет право доступа к открываемому файлу. В данном случае открывается файл LR7.СPP на диске B:\ только для чтения.
В «С» используются следующие коды, устанавливающие режимы доступа к открываемым файлам:
Символ |
Описание |
R |
Файл открывается только для чтения. Если нужного файла на диске нет, то возникает ошибка |
W |
Файл открывается только для записи. Если файла с заданным именем нет, то он будет создан, если же такой файл существует, то перед открытием прежняя информация уничтожается |
A |
Файл открывается для дозаписи в его конец новой информации |
r+ |
Файл открывается для редактирования его данных. Возможны и запись, и чтение информации |
w+ |
То же, что и для r+ |
a+ |
То же, что и для a, только запись можно выполнять в любое место файла. Доступно и чтение файла |
T |
Файл открывается в текстовом режиме. Указывается поле r, w, a, r+, w+, a+ |
B |
Файл открывается в двоичном режиме. Указывается поле r, w, a, r+, w+, a+ |
Текстовый режим отличается от двоичного тем, что при открытии файла как текстового пара символов « перевод строки», «возврат каретки» заменяется на один символ: «перевод строки» для всех функций записи данных в файл, а для всех функций вывода символ «перевод строки» теперь заменяется на два символа: « перевод строки»,«возврат каретки».
По умолчанию файл открывается в текстовом режиме.
После работы с файлом доступ к файлу необходимо закрыть. Закрывает файл в языке С функция fclose. Например, из предыдущего примера файл закрывается так: fclose (f);
Для открытия нескольких файлов введена функция, объявленная следующим образом: Void fcloseall(Void);
Если требуется изменить режим доступа к файлу, то для этого сначала необходимо закрыть данный файл, а затем вновь его открыть, но с другими правами доступа. Для этого используют стандартную функцию freopen, описанную в stdio.h как FILE* freopen (char filename, chov*mode, FILE *stream). Эта функция сначала закрывает файл, связанный с потоком stream (как это делает функция fopen), а затем открывает файл с именем filename и правами доступа mode, записывая информацию об этом файле в переменную stream.
В алгоритмическом языке С имеется возможность работы с временными файлами, т.е. с такими, которые нужны только в процессе работы программы и которые надо удалить после выполнения части вычислений. В этом случае используют функцию tmpfile со следующим объявлением: FILE* tmpfile (void).
Функция tmpfile создает на диске временный файл с правами доступа «w+b» и возвращает указатель на управляющий блок по типу атрибута FILE. После завершения работы программы или после закрытия временного файла он автоматически удаляется из диска.
Все действия по чтению/записи данных в файл можно подразделить на три группы:
Операции посимвольного ввода-вывода,
Операции построчного ввода-вывода,
Операции ввода-вывода по блокам.
Ниже приведены основные функции, применяемые в каждой из указанных трех групп операций.