C ++ freopen () - Thư viện chuẩn C ++

Hàm freopen () trong C ++ cố gắng mở một tệp mới với một luồng tệp được liên kết với một tệp đã mở khác.

Hàm freopen () được định nghĩa trong tệp tiêu đề.

nguyên mẫu freopen ()

 FILE * freopen (const char * tên tệp, const char * mode, FILE * stream);

Hàm freopen trước tiên cố gắng đóng tệp đã mở bằng luồng. Sau khi tệp được đóng, nó cố gắng mở tên tệp được chỉ định bởi tên tệp đối số (nếu nó không phải là null) trong chế độ được chỉ định bởi chế độ đối số. Cuối cùng nó liên kết tệp với luồng dòng tệp.

Nếu tên tệp là con trỏ rỗng, hàm freopen () sẽ cố gắng mở lại tệp đã được liên kết với luồng.

freopen () Tham số

  • tên tệp: Tệp mới để mở.
  • mode: Chế độ mở tệp bằng. Các loại chế độ truy cập tệp khác nhau như sau:
Các chế độ hoạt động tệp khác nhau
Chế độ truy cập tệp Diễn dịch Nếu tệp tồn tại Nếu tệp không tồn tại
"r" Mở tệp ở chế độ đọc Đọc từ đầu lỗi
"w" Mở tệp ở chế độ ghi Xóa tất cả nội dung Tạo tệp mới
"a" Mở tệp ở chế độ nối thêm Bắt đầu viết từ cuối Tạo tệp mới
"r +" Mở tệp ở chế độ đọc và ghi Đọc từ đầu lỗi
"w +" Mở tệp ở chế độ đọc và ghi Xóa tất cả nội dung Tạo tệp mới
"a +" Mở tệp ở chế độ đọc và ghi Bắt đầu viết từ cuối Tạo tệp mới
  • stream: Luồng tệp để liên kết tên tệp với.

freopen () Giá trị trả về

Hàm freopen () trả về:

  • phát trực tiếp về thành công.
  • NULL khi thất bại.

Ví dụ: Hàm freopen () hoạt động như thế nào?

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

Khi bạn chạy chương trình:

 Phần sau sẽ được ghi vào test1.txt: Phần này được viết cho test1.txt Phần sau sẽ được ghi vào test2.txt: Phần này được viết cho test2.txt

thú vị bài viết...