C语言文件操作题,求解析

#include <stdio.h>
main ()
{
FILE *fp;
int i,a[6]={1,2,3,4,5,6},k;
fp = fopen("data.dat","w+");
fprintf(fp,"%d\n",a[0]);
for (i=1;i<6;i++)
{
fseek(fp,0L,0);
fscanf(fp,"%d",&k);
fseek(fp,0L,0);
fprintf(fp,"%d\n",a[i]+k);
}
rewind(fp);
fscanf(fp,"%d",&k);
fclose(fp);
printf("%d\n",k);
}

/*头文件,包含的函数库, stdio.h是C语言的输入输出库,里面有最常见的函数,你需要某个函数时可以man一下,上面有函数功能介绍和函数使用方法、即需要引用的头文件。*/
#include <stdio.h>
/*函数入口,C语言程序执行程序是从main函数开始执行的*/
main ()
{
/*定义一个文件标识号指针,后面用fopen函数打开某个文件时,该指针会指向文件的内容*/
FILE *fp;
/*定义一个整形数 i 和k,一个容量为6的整形数组a,其首地址为a*/
int i,a[6]={1,2,3,4,5,6},k;
/*fopen函数:函数功能: 打开一个文件
函数原型:FILE * fopen(const char * path,const char * mode);

相关函数:open,fclose,fopen_s[1] ,_wfopen

所需库: <stdio.h>
返回值: 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。
一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理
*/

fp = fopen("data.dat","w+");
/*将数组a首地址存的一个整数a[0]输入到文件指针fp所指向的data.dat文件里面*/
fprintf(fp,"%d\n",a[0]);

for (i=1;i<6;i++)
{
/*
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字 节的位置。如果执行失败(比如offset超过文件自身大小),则不改变 stream指向的位置。
*/
fseek(fp,0L,0);
/*这里是通过文件指针fp,在文件data.dat中读取一个整数写到k中*/
fscanf(fp,"%d",&k);
/*将文件指针偏移到文件首地址*/
fseek(fp,0L,0);
/*通过for循环,将数组a中第二个数到第六个数加上k后再写入到文件中*/
fprintf(fp,"%d\n",a[i]+k);
}
rewind(fp);
fscanf(fp,"%d",&k);
fclose(fp);
printf("%d\n",k);
}
温馨提示:答案为网友推荐,仅供参考
相似回答