
- •Вопросы для выполнения контрольной и подготовки к экзамену по курсу Информатика (осенний семестр)
- •Классификация и способы записи алгоритмов.
- •Представление информации в компьютере, единицы измерения информации.
- •Алфавит языка. Идентификаторы.
- •Типы данных. Идентификаторы переменных. Структура программы.
- •Переменные и константы.
- •Операторы перехода по условию. Операторы цикла.
- •Бинарные операции.
- •Преобразование типов.
- •Порядок вычисления выражений.
- •Организация ввода-вывода информации. Функция форматированного вывода printf.
- •Организация ввода-вывода информации. Функция форматированного ввода информации scanf
- •Вложенные циклы.
- •Одномерные и много мерные массивы, их инициализация.
- •Ввод и вывод массивов.
- •Разработка структурных схем алгоритмов обработки массивов.
- •Декларация структур.
- •Инициализация и доступ к элементам структуры.
- •Организация данных на основе структур
- •Открытие и закрытие файлов.
Открытие и закрытие файлов.
Открытие файла: fopen( ) |
Далее Содержание |
Функцией fopen( ) управляют три основных параметра. Первый - имя файла, который следует открыть. Он является и первым аргументом fopen( ); в нашем случае это "test" .
Второй параметр [и второй аргумент fopen( )] описывает, как должен использоваться файл. Вот три основных применения файла:
"r": |
файл нужно считать |
"w": |
файл нужно записать |
"а": |
файл нужно дополнить |
Некоторые системы предоставляют еще дополнительные возможности, но мы будем придерживаться этих. Заметим, что используемые нами коды являются строками, а нe символьными константами; следовательно, они заключаются в двойные кавычки. При применении "r" открывается существующий файл. При двух других применениях тоже будет открываться существующий файл, но если такого файла нет, он будет создан.
Внимание: Если вы используете "w" для существующего файла, то старая версия его стирается, и ваша программа начинает на "чистом месте".
Третий параметр является указателем на файл; это значение возвращается функцией:
FILE *in;
in = fopen("test", "r");
Теперь in является указателем на файл "test". С этого момента программа ссылается на файл при помощи указателя in, а не по имени test.
Если вы очень сообразительны, то теперь можете задать такой вопрос: "Если fopen( ) возвращает указатель на 'FILE' в качестве аргумента, то почему мы не должны объявить fopen( ) как функцию указателя на 'FILE' ?" Хороший вопрос. Ответ заключается в том, что это описание сделал для нас файл stdio.h, который содержит строку
FILE *topen( );
Есть еще один важный момент относительно функции fopen(), которую мы использовали. Если fopen() не способна открыть требуемый файл, она возвращает значение 'NULL' (определенное в stdio.h как 0). Почему она не смогла открыть файл? Вы можете попросить ее считать файл, который не существует. Вот почему мы имеем в программе строку
if((in=fopen("test", "r"))!= NULL)
Заполнение диска, использование запрещенного имени или некоторые другие причины могут препятствовать открытию файла. Поэтому побеспокойтесь, чтобы их не было - маленькая ошибка может увести вас очень далеко. Закрыть файл проще.
Закрытие файла: fclose( ) |
|
Наш пример показывает, как закрывать файл:
fclose(in);
Просто используйте функцию fclose( ). Заметим, что аргументом ее является in, указатель на файл, а не test, имя файла.
Для программы, более серьезной, чем эта, следовало бы посмотреть, успешно ли закрыт файл. Функция fclose( ) возвращает значение 0, если файл закрыт успешно, и -1 в противном случае.
Операции ввода – вывода в файл.