C语言文件 fprintf函数与printf函数的作用相仿,都是格式化读写函数。所不同的是,fprintf函数的读写对象是磁盘文件,即是文件输出命令。而printf函数的读写对象是终端。
具体说来,fprintf函数的功能是:把args的值以format指定的格式输出到fp所制定的文件中。
它的原型是:
int fprintf(fp,format, args,…)
FILE *fp;
char *format;
返回值类型:整型,为实际输出的字符数
他的调用方式是:fprintf(文件指针,格式字符串,输出表列);
格式字符包括:%d, %c,%f等,与printf的格式字符相同。
需要说明的是,此函数必须先将文件打开,并指明写入方式后才能使用。这个函数使用方便、易于理解,但是写入时要将ASCII码转换为二进制,花费时间较多,因此在内存与磁盘频繁交换数据时,最好不用fprintf函数,而用fwrite函数。用完该函数后,还要关闭打开的文件。
stu[1]; -- 你循环到 i<2, 数组大小 至少要 stu[2];
"%20s%10s%8d 不需要这样麻烦 输入格式同输入的内容配合即可。
"%s %s %d" 输入的3个项,每项长度可变,它们之间用空白分隔。
例如:
wang 301 87
===
fscanf(fp,"%8d",got[i]); 我们的文件是顺序文件,文件打开时,读的数据在文件开始处。 依次写入的东西,依次才能读出。除非你用 fseek 或其它办法 找到地方。
例如:
fscanf(fp,"%*s %*s %d", &got[i]); // 别忘了 &号。
你的用法不对,我觉得最好的方式就是看帮助,也可以参考百度资料