![](/user_photo/_userpic.png)
- •Лекция 10
- •Понятие файла
- •Действия над файлами
- •Описание переменной
- •Открытие файла
- •Правила указания имени файла
- •Режимы открытия
- •Перенаправление потоков
- •Закрытие файла
- •Проверка на достижение конца файла
- •Открытие текстовых файлов
- •Чтение из текстового файла
- •Чтение из текстового файла
- •Чтение из текстового файла
- •Чтение из текстового файла
- •Запись в текстовый файл
- •Запись в текстовый файл
- •Запись в текстовый файл
- •Открытие бинарных файлов
- •Чтение из бинарных файлов
- •Запись в бинарный файл
- •Навигация по файлу
- •Навигация по файлу
- •Навигация по файлу
- •Навигация по файлу
- •Обработка ошибок
- •Буферизация
- •Временные файлы
- •Удаление и переименование
- •Пример
- •Программа
- •Программа
- •Программа
- •Пример
- •Программа
- •Программа
- •Пример
- •Программа
- •Программа
- •Пример
- •Программа
- •Программа
- •Программа
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv11x1.jpg)
Открытие текстовых файлов
Во втором параметре дополнительно указывается символ t (необязательно):
rt, wt, at, rt+, wt+, at+
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv12x1.jpg)
Чтение из текстового файла
Форматированное чтение
int fscanf(FILE *stream, const char * format, [arg] ...);
Функция возвращает:
>0 – число успешно прочитанных переменных,
0 – ни одна из переменных не была успешно прочитана,
EOF – ошибка или достигнут конец файла.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv13x1.jpg)
Чтение из текстового файла
Чтение строки
char * fgets(char * buffer, int maxlen, FILE *stream);
Функция возвращает:
buffer – все нормально,
NULL – ошибка или достигнут конец файла.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv14x1.jpg)
Чтение из текстового файла
Чтение символа
int fgetc(FILE *stream);
Функция возвращает:
код символа – если все нормально,
EOF – если ошибка или достигнут конец файла.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv15x1.jpg)
Чтение из текстового файла
Помещение символа обратно в поток
int ungetc(int c, FILE *stream);
Функция возвращает:
код символа – если все успешно, EOF – произошла ошибка.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv16x1.jpg)
FILE *f=NULL;
f = fopen (“f.txt”,”r”);
char c = fgetc(f);
ungetc(‘z’,f);
char s[20];
fgets(s,19,f);
printf(“%s”,s);
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv17x1.jpg)
Запись в текстовый файл
Форматированный вывод
int fprintf(FILE *stream, const char *format, [arg] ...);
Функция возвращает:
число записанных символов – если все нормально,
отрицательное значение – если ошибка.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv18x1.jpg)
Запись в текстовый файл
Запись строки
int fputs(const char *string, FILE *stream);
Функция возвращает:
число записанных символов – все нормально,
EOF – произошла ошибка.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv19x1.jpg)
Запись в текстовый файл
Запись символа
int fputc(int c, FILE *stream);
Функция возвращает:
код записанного символа – все нормально,
EOF – произошла ошибка.
![](/html/75143/1880/html_fQk4TPcFmE.BYug/htmlconvd-h0S0vv20x1.jpg)
Открытие бинарных файлов
Во втором параметре дополнительно указывается символ b (обязательно):
rb, wb, ab, rb+, wb+, ab+