}
Программа считывает из файла fail.ttt дискеты, вставленной в дисковод А: 49 символов или пока не встретится символ конец строки. Если файл не открылся, то предлагает ввести информацию с клавиатуры (введется 48 символов или до нажатия клавиши Ввод). Затем информация выводится в файл 1.txt на дискете или, если не удалось его открыть, в файл ошибок на экран.
4.13.3.Библиотечные функции для работы с файлами
Рассмотрим теперь некоторые другие библиотечные функции, ис-
пользуемые для работы c файлами (все они описаны в файле stdio.h).
1. Функция putc записывает символ в файл и имеет следующий прототип:
int putc(int c,FILE *lst);
здесь lst - указатель на файл, возвращенный функцией fopen, с - символ для записи (переменная о имеет тип int, но используется только младший байт). При успешном завершении putс возвращает записанный символ, в противном случае возвращается константа EOF. Она определена в файле stdlo.h и имеет значение –1.
2. Функция getc читает символ из файла и имеет следующий прототип:
int getc (FILE *lst);
здесь 1st - указатель на файл, возвращенный функцией fopen. Эта функция возвращает прочитанный символ. Соответствующее значение определяется типом int, но старший байт равен нулю. Если достигнут конец файла, то getc возвращает значение EOF.
3. Функция feof определяет конец файла при чтении двоичных данных и имеет следующий прототип*:
int feof(FILE *lst);
здесь lst - указатель на файл, возвращенный функцией fopen. При достижении конца файла возвращается ненулевое значение, в противном случае возвращается 0.
4. Функция fputs записывает строку символов в файл. Она отличается от функции puts только тем, что в качестве второго параметра должен быть записан указатель на переменную файлового типа. Рассмотрим пример: fputs("Example",lst); При возникновении ошибки возвращается значение EOF.
5. Функция fgets читает строку символов из файла. Она отличается от функции gets только тем, что в качестве второго параметра указывается количество байт и в качестве третьего параметра должен быть записан указатель на переменную файлового типа. Рассмотрим пример: fgets(str,nlst); Функция возвращает указатель на строку при успешном завершении и константу NULL в случае ошибки либо достижении конца файла; (char*str, int n, file*lst читает n символов из строки или до конца строки).
6. Функция fprintf выполняет те же самые действия, что и функция printf, но работает с файлом. Ее отличием является то, что в качестве первого параметра задается указатель на переменную файлового типа. Рассмотрим пример:
fprintf(lst,"%x",a);
7. Функция fscanf выполняет те же самые действия, что и функция scanf, но работает с файлом. Ее отличием является то, что в качестве первого параметра задается указатель на переменную файлового типа. Рассмотрим пример:
fscanf(lst,"%x",&a);.
При достижении конца файла возвращается значение ЕОF.
8. Функция fseek позволяет выполнять чтение и запись с произвольным доступом и имеет следующий прототип:
int fseek(FILE *lst, long count, int access);
здесь lst - указатель на файл, возвращенный функцией fopen, count - номер байта относительно заданной начальной позиции, начиная с которого будет выполняться операция, access задает начальную позицию. Переменная aссess может принимать следующие значения.
О - начальная позиция задана в начале файла; SEEK_SET (0)
1 - начальная позиция считается текущей; SEEK_CUR (1)
2 - начальная позиция задана в конце файла. SEEK_END
При успешном завершении возвращается нуль, при ошибке - ненулевое
значение;
9. Функция ferror позволяет проверить правильность выполнения
последней операции при работе с файлом и имеет следующий прототип:
int terror(FILE *lst);
В случае ошибки возвращается ненулевое значение, в противном случае возвращается нуль.
10. Функция remove удаляет файл и имеет следующий прототип:
int remove(char *file_name);
здесь file_name - указатель на строку со спецификацией файла. При успешном завершении возвращается нуль, в противном случае возвращается ненулевое значение.
11. Функция rewind устанавливает указатель текущей позиции в начало файла и имеет следующий прототип:
void rewind(FILE *lst).
В языке C открываются пять стандартных файлов со следующими логическими именами:
stdin - для ввода данных из стандартного входного потока (по умолчанию c клавиатуры);
stdout - для вывода данных в стандартный выходной поток (по умолчанию на экран дисплея)
stderr - файл для вывода сообщений об ошибках (всегда связан о экраном дисплея);
stdpm - для вывода данных на принтер;
stdaux - для ввода и вывода данных в коммуникационный канал.