- 论坛徽章:
- 0
|
我的程序里边,为什么fwrite没有把数据写到文件里边啊?
原帖由 "zkyguanl" 发表:
void putrec(FILE *fp,int i,struct record *r)
{
fseek(fp,(long)i*sizeof(struct record),0);
fwrite((char *)r,sizeof(struct record),1,fp);
}
问题在这里。你上来就 i=4,让文件指针转到那个地方。..........
程序没有问题.即使文件刚刚生成,文件指针也是可以移动的,请查阅APUE.中文版39页.
"文件位移量可以大于文件当前长度,...形成空洞文件"
上述的代码运行结果如下
===============================================
在UE中打开
user1 烫烫烫 user2 烫烫烫 user3 烫烫烫 user4 烫烫烫 user5 烫烫烫
文件大小为80 字节 (80 字节)
所以,说明执行成功,写入四条记录,大小为4*sizeof(record)
===============================================
回答问题,最好不要主管臆断,试验下先,更不要说什么"人为错误的"唯心主义论调. |
|