「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」。
fread
fread(buffer,size,count,fp);
buffer是数据块的指针,对fread来说,它就是内存块的首地址,输入的数据存入此内存块中。
Feof
的作用是判断文件是否已指到了文件末尾,如果已指到文件的末尾,则返回值为非零,否则为零。
Ftell
的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。
fgets
fgets的作用是指定文件读入一个字符串。
fputc(ch,fp)
这里ch是待输出的某个字符,它可以是一个字符常量,也允许是一个字符变量,fp是文件指针。
使用文件方式为"写入";"
fputs(str,fp)
(str,fp)"的作用是将字符str的值输出到fp所指向的文件中去。
fwrite(buffer,size,count,fp);:buffer是一个指针,用于指向输出数据存放在内存区域的起始地址,size是要输出的字节数,count是要输出大小为size个字节的数据块的个数,fp是文件指针。
EOF作为文件结束的标志,但是文件必须是文本文件。EOF的值为-1。
对于文本文件,fgetc函数读入最后一个字符时,返回值是最后一个字符。
fopen
在C语言中fopen函数就可把程序中要读、写的文件与磁盘上实际的数据文件联系起来,其调用形式为:fopen(文件名,文件使用方式);若该函数调用成功,函数返回一个FILE类型的指针,赋给文件指针变量,从而与文件联系起来,当打开文件时出现错误,fopen函数将返回NULL。
文件使用方式"r",表示"只读"方式打开一个字符文件。
文件使用方式"r+",表示"读写"方式打开一个字符文件。
文件使用方式"rb",表示以"只读"方式打开一个二进制文件。
文件使用方式"w",表示以"只写"方式打开一个字符文件。
文件使用方式"a+",表示以"编辑"方式打开一个字符文件。
来几道题
#include <stdio.h>
main()
{ FILE *fp; int i,k,n;
fp=fopen("data.dat","w+");
for(i=1;i<6;i++)
{fprintf(fp,"%d ",i);
if(i%3==0) fprintf(fp,"\n");
}
rewind(fp);
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
问答案:?
#include <stdio.h>
main()
{FILE *fp; int i;
char ch[]="abcd",t;
fp=fopen ("abc.dat","wb++");
for (i=0;i<4;i++) fwrite(&ch[i],1,1,fp);
fseek (fp,-2L,SEEK_END);
fread (&t,1,1,fp);
fclose (fp);
printf ("%c\n",t);
}
问答案:?
#include <stdio.h>
main()
{ FILE *fp; int k,n,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w");
fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
close(fp);
}
问答案:?
#include <stdio.h>
main()
{ FILE *fp; int i,a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","w+b");
fwrite(a,sizeof(int),6,fp);
fseek(fp,sizeof(int)*3,SEEK_SET);/该语句使读文件的位置指针从文件头向后移动3个int型数据/
fread(a,sizeof(int),3,fp);fclose(fp);
for(i=0;i<6;i++) printf("%d,",a[i]);
}
问答案:?