ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[danger] fgetc字符输入函数。就是把字符从其他输入到程序中来。<stdio.h> **int fgetc(****FILE****\****stream***);//函数原型** **只有一个参数,就是被打开文件对应的文件流。** **返回值是所读取到字符的ASCII值。类型是 int。如果读取失败或者文件结束,就会返回EOF。** ``` #include<stdio.h> int main() { //打开文件 FILE* pf1 = fopen("test.txt", "r"); //判断是否打开文件成功 if (NULL == pf1) { perror("fopen"); return 1; } //读文件 int c = 0; c = fgetc(pf1); printf("%d\n", c); printf("%c\n", c); //关闭文件 fclose(pf1); pf1 = NULL; return 0; } ``` >[danger]fputc:字符输出函数,就是把字符从程序输出到其他中 int fputc(int c,FILE ***stream);//函数原型** 第一个参数是欲输出字符的ASCII值。 第二个参数是打开文件的流。 返回是欲输出字符的ASCII值,如果输出失败返回EOF ``` #include<stdio.h> int main() { //打开文件 FILE* pf1 = fopen("test.txt", "w");//注意用"w"打开的时候会清空文件里面存放的数据 //判断是否打开文件成功 if (NULL == pf1) { perror("fopen"); return 1; } //写文件 printf("%c", fputc('z', pf1)); //关闭文件 fclose(pf1); pf1 = NULL; return 0; } ``` >[danger] fgets:文本行输入函数,从其他到程序 char *fgets( char *string, int n, FILE *stream ); 第一个参数:输入的文件存放的位置。 第二个参数:最大输入数n(只能输入n-1个数最后一个要写'\0'。 第三个参数:所打开文件的流 返回值是:存放数据数组的地址。错误或者遇到文件结束标志就会返回NULL。 ``` int main() { //打开文件 FILE* pf = fopen("test.txt", "r"); //判断是否打开文件成功 if (NULL == pf) { perror("fopen"); return 1; } //读文件 char str[20]; printf("%s\n", fgets(str, 20, pf)); printf("%s\n", str); //关闭文件 fclose(pf); pf = NULL; return 0; } ``` >[danger] fputs:文本行输出函数,从程序到其他** int fputs(const char *string,FILE *stream); 第一个参数:数据来源 第二个参数:输出流 返回:如果成功,这些函数中的每一个都返回一个非负值。发生错误时,fputs 返回 EOF。 ``` #include<stdio.h> int main() { //打开文件 FILE* pf = fopen("test.txt", "w"); //判断是否打开文件成功 if (NULL == pf) { perror("fopen"); return 1; } //写文件 char str[] = "zhangxuefeng"; //fputs(str, pf); printf("%d\n", fputs(str, pf)); //关闭文件 fclose(pf); pf = NULL; return 0; } ``` >[danger] fprintf:格式化的输出函数,从程序到其他 int fprintf( FILE *stream,const char *format [,argument]...); 第一个参数:流。 第二个参数:格式化的数据。 返回写入的字符数,当发生输出错误时,这些函数中的每一个都返回负值 ``` typedef struct sss { int a;//4 char str[10];//1 float b;//4 }sss; #include<stdio.h> int main() { //打开文件 FILE* pf = fopen("test.txt", "w"); if (pf == NULL) { perror("fopen"); return 1; } //输出数据 sss ret = { 1,"zhang",99.9f }; //fprintf(pf, "%d %s %f", ret.a, ret.str, ret.b); printf("%d", fprintf(pf, "%d %s %f", ret.a, ret.str, ret.b)); //关闭文件 fclose(pf); pf = NULL; return 0; } ``` >[danger] fscanf:格式化输入函数,从其他到程序。 int fscanf( FILE *stream, const char *format [, argument ]... ); 第一个参数:流。 第二个参数:格式化的数据,此参数和scanf函数相同。 返回值:实际读取数据的个数。如果遇到文件结束或者读取失败会返回EOF。 ``` #include<stdio.h> int main() { //打开文件 FILE* pf = fopen("test.txt", "r"); if (pf == NULL) { perror("fopen"); return 1; } //输入数据 sss ret = {0}; printf("%d\n", fscanf(pf, "%d %s %f", &(ret.a), ret.str, &(ret.b))); printf("%d\n", ret.a); printf("%s\n", ret.str); printf("%f\n", ret.b); //关闭文件 fclose(pf); pf = NULL; return 0; } ```