C ++ freopen () - Стандартная библиотека C ++

Функция freopen () в C ++ пытается открыть новый файл с файловым потоком, который связан с другим открытым файлом.

Функция freopen () определена в заголовочном файле.

freopen () прототип

 ФАЙЛ * freopen (const char * filename, const char * mode, FILE * stream);

Функция freopen сначала пытается закрыть файл, открытый с помощью потока. После закрытия файла он пытается открыть имя файла, указанное аргументом filename (если оно не равно нулю), в режиме, заданном параметром mode. Наконец, он связывает файл с потоком файлового потока.

Если filename является нулевым указателем, функция freopen () пытается повторно открыть файл, который уже связан с потоком.

freopen () Параметры

  • filename: Новый файл для открытия.
  • mode: режим открытия файла. Ниже представлены различные типы режима доступа к файлам:
Различные режимы работы с файлами
Режим доступа к файлам Интерпретация Если файл существует Если файл не существует
"р" Открывает файл в режиме чтения Читать с начала ошибка
"ш" Открывает файл в режиме записи Стереть все содержимое Создать новый файл
"а" Открывает файл в режиме добавления Начни писать с конца Создать новый файл
"г +" Открывает файл в режиме чтения и записи Читать с начала ошибка
"w +" Открывает файл в режиме чтения и записи Стереть все содержимое Создать новый файл
"а +" Открывает файл в режиме чтения и записи Начни писать с конца Создать новый файл
  • stream: файловый поток, с которым нужно связать имя файла.

freopen () Возвращаемое значение

Функция freopen () возвращает:

  • поток при успехе.
  • NULL в случае ошибки.

Пример: как работает функция freopen ()?

 #include #include int main() ( FILE* fp = fopen("test1.txt","w"); fprintf(fp,"%s","This is written to test1.txt"); if (freopen("test2.txt","w",fp)) fprintf(fp,"%s","This is written to test2.txt"); else ( printf("freopen failed"); exit(1); ) fclose(fp); return 0; )

При запуске программы:

 В test1.txt будет записано следующее: Это будет записано в test1.txt Следующее будет записано в test2.txt: Это будет записано в test2.txt

Интересные статьи...