C ++ freopen () - C ++ standarta bibliotēka

C ++ funkcija freopen () mēģina atvērt jaunu failu ar failu straumi, kas ir saistīta ar citu atvērtu failu.

Funkcija freopen () ir definēta galvenes failā.

freopen () prototips

 FILE * freopen (const char * faila nosaukums, const char * režīms, FILE * straume);

Freopen funkcija vispirms mēģina aizvērt failu, kas atvērts, izmantojot straumi. Pēc faila aizvēršanas tas mēģina atvērt argumenta režīma norādītajā režīmā faila nosaukumu, ko norāda arguments faila nosaukums (ja tas nav nulle). Visbeidzot, tas failu saista ar failu straumes straumi.

Ja faila nosaukums ir nulles rādītājs, funkcija freopen () mēģina atkārtoti atvērt failu, kas jau ir saistīts ar straumi.

freopen () parametri

  • faila nosaukums: Atverams jauns fails.
  • režīms: režīms, lai atvērtu failu. Dažādi failu piekļuves režīma veidi ir šādi:
Dažādi faila darbības režīmi
Failu piekļuves režīms Interpretācija Ja fails pastāv Ja fails nepastāv
"r" Atver failu lasīšanas režīmā Lasīt no sākuma Kļūda
"w" Atver failu rakstīšanas režīmā Dzēst visu saturu Izveidot jaunu failu
"a" Atver failu pievienošanas režīmā Sāciet rakstīt no beigām Izveidot jaunu failu
"r +" Atver failu lasīšanas un rakstīšanas režīmā Lasīt no sākuma Kļūda
"w +" Atver failu lasīšanas un rakstīšanas režīmā Dzēst visu saturu Izveidot jaunu failu
"a +" Atver failu lasīšanas un rakstīšanas režīmā Sāciet rakstīt no beigām Izveidot jaunu failu
  • straume: failu straume, ar kuru faila nosaukums ir jāsaista.

freopen () Atgriešanās vērtība

Funkcija freopen () atgriež:

  • straume uz panākumiem.
  • NULL par neveiksmi.

Piemērs: Kā darbojas freopen () funkcija?

 #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; )

Palaidot programmu:

 Turpmāk tiks rakstīts uz test1.txt: Tas ir rakstīts uz test1.txt . Tālāk tiks rakstīts uz test2.txt: Tas ir rakstīts uz test2.txt

Interesanti raksti...