Функција фреопен () у Ц ++-у покушава да отвори нову датотеку помоћу тока датотека који је повезан са другом отвореном датотеком.
Функција фреопен () је дефинисана у датотеци заглавља.
прототип фреопен ()
ФИЛЕ * фреопен (цонст цхар * назив датотеке, цонст цхар * режим, ФИЛЕ * стреам);
Функција фреопен прво покушава да затвори датотеку отворену помоћу тока. Након што се датотека затвори, покушава да отвори име датотеке назначено аргументом име датотеке (ако није нулл) у режиму наведеном у режиму аргумента. Коначно, повезује датотеку са током протока датотека.
Ако је назив датотеке нулти показивач, функција фреопен () покушава поново отворити датотеку која је већ придружена току.
параметри фреопен ()
- име датотеке: Нова датотека за отварање.
- режим: Режим којим желите да отворите датотеку. Различите врсте режима приступа датотекама су следеће:
Режим приступа датотекама | Тумачење | Ако датотека постоји | Ако датотека не постоји |
---|---|---|---|
"р" | Отвара датотеку у режиму читања | Читајте од почетка | Грешка |
"в" | Отвара датотеку у режиму писања | Избришите сав садржај | Направите нову датотеку |
"а" | Отвара датотеку у режиму додавања | Почните да пишете од краја | Направите нову датотеку |
"р +" | Отвара датотеку у режиму читања и писања | Читајте од почетка | Грешка |
"в +" | Отвара датотеку у режиму читања и писања | Избришите сав садржај | Направите нову датотеку |
"а +" | Отвара датотеку у режиму читања и писања | Почните да пишете од краја | Направите нову датотеку |
- стреам: ток датотеке којем треба придружити име датотеке.
фреопен () Повратна вредност
Функција фреопен () враћа:
- ток успеха.
- НУЛЛ у случају неуспеха.
Пример: Како функционише функција фреопен ()?
#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; )
Када покренете програм:
Следеће ће бити написано на тест1.ткт: Ово је написано на тест1.ткт Следеће ће бити написано на тест2.ткт: Ово је написано на тест2.ткт