1.文件的打开和关闭文件在在读写之前应该先打开文件再使用结束后应关闭文件。在编写程序时在打开文件的同时会返回一个 FILE* 的指针变量指向该文件建立了文件和指针之间的联系。文件打开函数 fopenFILE * fopen ( const char * filename, const char * mode );参数filename:文件名mode:文件的打开形式直白点说是要读取文件还是写入文件。在打开文件前文件必须存在如果文件不存在函数会返回NULL如果打开成功函数返回一个指向目标文件的指针。如果想打开其他路径的文件文件需要是绝对路径。(记得转义下斜杠 )FILE* p fopen(C:\\Users\\Hp\\OneDrive\\桌面, r);除了读和写还有一些其他的打开模式。文件关闭函数 fcloseint fclose ( FILE * stream );参数stream指向目标文件的指针例子#includestdio.h #includestring.h #includeerrno.h int main() { //打开文件 FILE* p fopen(plain text.txt, r); if (p NULL) { //打开失败提示失败的原因 printf(%s \n,strerror(errno)); return -1; } //关闭文件 fclose(p); p NULL; return 0; }2.文件的读和写fputc函数写入一个字符到stream指针指向的文件中。int fputc ( int character, FILE * stream );例子int main() { FILE* p fopen(plain text.txt, w); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } //读文件 int i 0; for (i a; i z; i) { fputc(i, p); } fclose(p); p NULL; return 0; }fgetc函数如果在stream指针指向的文件成功读取一个字符返回字符的ascii如果读取失败返回EOF。int fgetc ( FILE * stream );例子int main() { FILE* p fopen(plain text.txt, r); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } //写文件 int ch 0; while((chfgetc(p))!EOF) { printf(%c , ch); } fclose(p); p NULL; return 0; }fputs函数把一个字符串写入到stream指针指向的文件int fputs ( const char * str, FILE * stream );例子int main() { FILE* p fopen(plain text.txt, w); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } //读文件 fputs(hello world, p); fclose(p); p NULL; return 0; }fgets函数在stream指针指向的文件里读num个字符读到的字符放在str里如果是读num个字符能读取num-1个字符最后一个字符放 \0。返回值 读取成功返回str的地址读取失败或者遇到文件结尾返回NULL。char * fgets ( char * str, int num, FILE * stream );例子int main() { FILE* p fopen(plain text.txt, r); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } //读文件 char arr[20] { 0 }; fgets(arr, 12, p); printf(%s\n, arr); fclose(p); p NULL; return 0; }fprintf函数把格式化的数据写入到stream指针指向的文件。int fscanf ( FILE * stream, const char * format, ... );例子int main() { FILE* p fopen(plain text.txt, w); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } fprintf( p, %s %d %s, peter, 20, male); fclose(p); p NULL; return 0; }fscanf函数把stream指针指向的文件的数据读到变量中。int fscanf ( FILE * stream, const char * format, ... );例子struct S { char name[20]; int age; char gender[20]; }; int main() { struct S s { 0 }; FILE* p fopen(plain text.txt, r); if (p NULL) { printf(%s\n, strerror(errno)); return -1; } fscanf(p, %s %d %s,s.name ,(s.age),s.gender); printf(%s %d %s\n, s.name, s.age, s.gender); fclose(p); p NULL; return 0; }