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

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

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

прототип freopen ()

 FILE * freopen (const char * ім'я файлу, режим const char *, потік FILE *);

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

Якщо ім'я файлу є нульовим покажчиком, функція freopen () намагається знову відкрити файл, який вже пов'язаний з потоком.

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

  • ім'я файлу: Новий файл для відкриття.
  • mode: Режим, за допомогою якого можна відкрити файл. Різні типи режиму доступу до файлів:
Різні режими роботи з файлами
Режим доступу до файлів Інтерпретація Якщо файл існує Якщо файл не існує
"r" Відкриває файл у режимі читання Читати з самого початку Помилка
"ш" Відкриває файл у режимі запису Стерти весь вміст Створити новий файл
"а" Відкриває файл у режимі додавання Почніть писати з кінця Створити новий файл
"r +" Відкриває файл у режимі читання та запису Читати з самого початку Помилка
"w +" Відкриває файл у режимі читання та запису Стерти весь вміст Створити новий файл
"a +" Відкриває файл у режимі читання та запису Почніть писати з кінця Створити новий файл
  • потік: Потік файлу, з яким потрібно пов’язати ім’я файлу.

freopen () Повернене значення

Функція freopen () повертає:

  • потік успіху.
  • НУЛЬ при відмові.

Приклад: Як працює функція 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

Цікаві статті...