非常感谢。请高人指点一下!

[复制链接]
查看11 | 回复4 | 2011-3-23 16:25:10 | 显示全部楼层 |阅读模式
#include
main()
{
FILE *fp;int a[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)
printf("%d",a);
}
fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); 这两个的作用是将哪些数写进了fp中?另外里面的5有什么作用?

回复

使用道具 举报

千问 | 2011-3-23 16:25:10 | 显示全部楼层
size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream); 函数说明fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。所以是把a[0]a[1]a[2]a[3]a[4],写入了fp中,写入了两遍,读出时就为1230012300
回复

使用道具 举报

千问 | 2011-3-23 16:25:10 | 显示全部楼层
size_t fwrite(const void*buffer,size_t size,size_t count,FILE*stream); 注意:这个函数只能对二进制文件进行操作,即后缀是.bat .bin的文件 返回值:返回实际写入的数据块数目 (1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。 (2)size:要写
回复

使用道具 举报

千问 | 2011-3-23 16:25:10 | 显示全部楼层
fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); 这两个是将fp这个指向文件的指针中读5个sizeof(int)字节的数据读入打a中。5是控制要进行写入sizeof(int)字节的数据项的个数
回复

使用道具 举报

千问 | 2011-3-23 16:25:10 | 显示全部楼层
5是要进行写入size字节的数据项的个数。对应的是数组a的5个值:int a[10]={1,2,3,0,0}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行