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

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

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

прототип на freopen ()

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

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

Ако името на файла е нулев указател, функцията freopen () се опитва да отвори отново файла, който вече е свързан с поток.

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

  • име на файл: нов файл за отваряне.
  • mode: Режим, с който да отворите файла. Различните видове режим на достъп до файлове са както следва:
Различни режими на работа с файлове
Режим на достъп до файлове Интерпретация Ако файлът съществува Ако файлът не съществува
"r" Отваря файла в режим на четене Прочетете от самото начало Грешка
"w" Отваря файла в режим на запис Изтрийте цялото съдържание Създайте нов файл
"а" Отваря файла в режим на добавяне Започнете да пишете от края Създайте нов файл
"r +" Отваря файла в режим на четене и запис Прочетете от самото начало Грешка
"w +" Отваря файла в режим на четене и запис Изтрийте цялото съдържание Създайте нов файл
"a +" Отваря файла в режим на четене и запис Започнете да пишете от края Създайте нов файл
  • поток: Файловият поток, към който се свързва името на файла.

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

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