我孤独飘零 发表于 2013-08-10 23:41

linux下 关于文件的一个读写操作

我在对文件进行读写操作的时候,打开文件后,写操作后,没有关闭文件,直接进行读操作,但是读和写的缓冲区不同,结果就读取不了写入文件的数据,为什么一定要关闭后再打开,才能进行读操作,读取的数据才会对?如果不想关闭文件,直接进行读取操作读取到写操作的数据,该怎么写?代码如下:

#include<stdio.h>
typedef struct {
int num;
int age;
}Stu;
int main(void)
{
FILE *fp;
Stu *stu;
Stu *stu1;
stu=(Stu *)malloc(sizeof(Stu));
stu1=(Stu *)malloc(sizeof(Stu));
fp=fopen("11.txt","w+");
stu->num=5;
stu->age=4;
fwrite(stu,sizeof(Stu),1,fp);
fread(stu1,sizeof(Stu),1,fp);
printf("%d\n",stu1->num);
printf("%d\n",stu1->age);
fclose(fp);
return 0;
}

nash2013 发表于 2013-08-12 08:57

你用fseek(FILE, 0, SEEK_SET)重新定位到开始位置就行了

haoyuejushi 发表于 2013-08-12 11:42

fflush()

我孤独飘零 发表于 2013-08-12 13:55

回复 2# nash2013

谢谢


   

我孤独飘零 发表于 2013-08-12 13:56

回复 3# haoyuejushi
这个就是刷新缓冲区?本人小白~

   
页: [1]
查看完整版本: linux下 关于文件的一个读写操作