首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个关于文件读写操作的有关问题

2013-08-13 
一个关于文件读写操作的问题我在对文件进行读写操作的时候,打开文件后,写操作后,没有关闭文件,直接进行读

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

#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;
}

[解决办法]



直接用写打开的文件读的话,它的文件句柄已经移动到后面的位置了(防止你再写的时候,覆盖前面的内容,)所以你用同一个文件句柄去读的时候,得把句柄移动到文件头

fseek()

fseek(fp, 0 ,SEEK_SET); //表示从文件开头的编译0个字节的位置读文件!

热点排行