C ++ freopen () - Perpustakaan Standard C ++

Fungsi freopen () dalam C ++ cuba membuka fail baru dengan aliran fail yang dikaitkan dengan fail lain yang dibuka.

Fungsi freopen () didefinisikan dalam fail tajuk.

prototaip freopen ()

 FILE * freopen (const char * nama fail, const char * mode, FILE * stream);

Fungsi freopen pertama kali cuba menutup fail yang dibuka menggunakan aliran. Setelah fail ditutup, ia akan berusaha membuka nama fail yang ditentukan oleh nama fail argumen (jika tidak kosong) dalam mod yang ditentukan oleh mod argumen. Akhirnya ia mengaitkan fail dengan aliran aliran fail.

Sekiranya nama fail adalah penunjuk nol, fungsi freopen () cuba membuka semula fail yang sudah dikaitkan dengan aliran.

freopen () Parameter

  • nama fail: Fail baru untuk dibuka.
  • mod: Mod untuk membuka fail dengan. Jenis mod akses fail yang berbeza adalah seperti berikut:
Kaedah operasi fail yang berbeza
Mod Akses Fail Tafsiran Sekiranya fail ada Sekiranya fail tidak ada
"r" Membuka fail dalam mod baca Baca dari awal Ralat
"w" Membuka fail dalam mod tulis Padamkan semua kandungannya Buat fail baru
"a" Membuka fail dalam mod lampiran Mula menulis dari akhir Buat fail baru
"r +" Membuka fail dalam mod baca dan tulis Baca dari awal Ralat
"w +" Membuka fail dalam mod baca dan tulis Padamkan semua kandungannya Buat fail baru
"a +" Membuka fail dalam mod baca dan tulis Mula menulis dari akhir Buat fail baru
  • stream: Aliran fail untuk mengaitkan nama fail.

freopen () Nilai pulangan

Fungsi freopen () mengembalikan:

  • arus kejayaan.
  • NULL pada kegagalan.

Contoh: Bagaimana fungsi freopen () berfungsi?

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

Semasa anda menjalankan program:

 Perkara berikut akan ditulis untuk test1.txt: Ini ditulis untuk test1.txt Berikut ini akan ditulis untuk test2.txt: Ini ditulis untuk test2.txt

Artikel menarik...