C. Тема 3. Раздел 2
.pdfТема 3. Ввод и вывод. Раздел 2. Работа с файлами
Открытие файла
Манипуляция файлом
Закрытие файла
Открытие файла
Открытие существующего файла для чтения
Создание нового файла
Открытие существующего файла с очисткой его содержимого
Манипуляция файлом
Чтение данных из файла
Запись данных в файл
Позиционирование внутри файла
Закрытие файла
Часть 1
Функция fopen FILE *fopen(
// Имя файла
const char *filename,
// Режим открытия файла const char *mode
);
FILE – структура описателя потока данных, соответствующего файлу
|
|
|
|
|
|
|
|
|
Режим |
Описание |
|
|
|
|
|
|
r |
Открыть файл для чтения. Файл должен существовать. |
|
|
w |
Открыть пустой файл для записи; если этот файл ранее |
|
|
|
существовал, его содержимое уничтожается. |
|
|
|
|
|
|
a |
Открыть файл для записи (добавления) в конец. Если |
|
|
|
данного файла нет, то вначале он создаётся. |
|
|
r+ |
Открыть файл одновременно для чтения и записи. Файл |
|
|
|
должен существовать. |
|
|
|
|
|
|
w+ |
Открыть пустой файл для чтения и записи. Если этот файл |
|
|
|
ранее существовал, его содержимое уничтожается. |
|
|
a+ |
Открыть файл для чтения и добавления. Если файла нет, |
|
|
|
вначале он создается. |
|
|
|
|
|
tОткрыть в текстовом (преобразующем) режиме; при вводе комбинация «Возврат каретки - перевод строки» преобразовывается к единственному символу «перевода строки». При выводе символ перевода строки
преобразовывается в комбинацию CR-LF.
b Открыть в бинарном (двоичном, непреобразующем) режиме; преобразования текстового режима не осуществляются.
int ferror(FILE *stream) –
определение номера ошибки указанного потока данных
int feof( FILE *stream ) –
достигнут ли конец потока данных (файла)
void clearerr(FILE *stream) –
сбрасывает в 0 значение, возвращаемое функциями ferror и feof для указанного потока данных
int fileno( FILE *stream ) –
получение дескриптора для указанного потока данных
FILE *fdopen(
//Дескриптор файла int fd,
//Режим открытия файла
//(как у fopen)
const char *mode
);