Функцията 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