C ทำงานห้องสมุด - freopen ()
ลักษณะ
C ทำงานห้องสมุดFILE * freopen (ถ่าน const * ชื่อไฟล์ , ถ่าน const * โหมดกระแสไฟ *) เป็นชื่อไฟล์ชื่อไฟล์การไหลของกระแสใหม่ที่เกี่ยวข้องกับชุดที่กำหนดของเปิดในขณะที่กระแสของการปิดไฟล์เก่า
คำแถลง
นี่ freopen () ฟังก์ชั่นของการประกาศ
FILE *freopen(const char *filename, const char *mode, FILE *stream)
พารามิเตอร์
- ชื่อไฟล์ - นี่คือสตริง C มีชื่อของไฟล์ที่คุณต้องการเปิด
- โหมด - นี่คือสตริง C ที่มีโหมดการเข้าถึงไฟล์โหมดจะเป็นดังนี้:
模式 | 描述 |
---|---|
"r" | 打开一个用于读取的文件。该文件必须存在。 |
"w" | 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。 |
"a" | 追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文件。 |
"r+" | 打开一个用于更新的文件,可读取也可写入。该文件必须存在。 |
"w+" | 创建一个用于读写的空文件。 |
"a+" | 打开一个用于读取和追加的文件。 |
- กระแส - นี้เป็นตัวชี้ไปยังไฟล์ตัวชี้ไปยังวัตถุแฟ้มระบุวัตถุคือการที่จะเปิดใหม่อีกครั้งกระแส
ราคาย้อนกลับ
ถ้าแฟ้มถูกเปิดประสบความสำเร็จในการทำงานกลับชี้ไปยังกระแสระบุวัตถุ มิฉะนั้นก็จะส่งกลับตัวชี้โมฆะ
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึง freopen ฟังก์ชัน () ถูกนำมาใช้
#include <stdio.h> int main () { FILE *fp; printf("该文本重定向到 stdout\n"); fp = freopen("file.txt", "w+", stdout); printf("该文本重定向到 file.txt\n"); fclose(fp); return(0); }
Let 's รวบรวมและเรียกใช้โปรแกรมดังกล่าวข้างต้นซึ่งจะส่งบรรทัดต่อไปนี้ออกมาตรฐาน STDOUT เพราะตอนแรกเราไม่ได้เปิดออกมาตรฐาน:
该文本重定向到 stdout
หลังจากเรียกfreopen () มันจะเชื่อมโยงไปยัง STDOUT แฟ้มผลลัพธ์ file.txt มาตรฐานไม่ว่าเราจะอยู่ในสิ่งที่เขียนถูกเขียนออกมาตรฐานSTDOUT file.txt คุณจะมีเนื้อหา file.txt แฟ้มต่อไปนี้
该文本重定向到 file.txt
ตอนนี้ขอใช้ขั้นตอนต่อไปนี้เพื่อดูเนื้อหาของแฟ้มข้างต้นนี้
#include <stdio.h> int main () { FILE *fp; int c; fp = fopen("file.txt","r"); while(1) { c = fgetc(fp); if( feof(fp) ) { break ; } printf("%c", c); } fclose(fp); return(0); }