该楼层疑似违规已被系统折叠隐藏此楼查看此楼
高手啊,我试了,结果是回到文件头了,把123覆盖了,为ABC 但我这个程序就能直接不关闭文件而用rewind函数到开头,你帮忙看看, //二进制文件的输入输出--数据块的读写
#include
#include
#include
int main()
{
FILE *fp;
struct student
{
char num[8];
int score;
}stu1[5]={{"201",99},{"201",98},{"203",100},{"204",78},{"205",99}},stu2[5];
int i;
if((fp=fopen("stu.bin","wb+")) == 0)//以二进制读写形式打开文件
{
puts("cannot open file");
exit(0);
}
puts("请输入数据 学好 成绩\n");
/* for(i=0;i<5;i++)
{
scanf("%s %d",&stu1[i].num,&stu1[i].score);
}*/
puts("利用fwrite函数把数据写入到文件中");
/*for(i=0;i<5;i++)
{
fwrite(&stu1[i],sizeof(struct student),1,fp);
}*/
fwrite(stu1,sizeof(struct student),5,fp);//和上面效果一样
rewind(fp); //重置函数指针到文件开始处
puts("利用fread函数读取文件内容");
puts("学号 成绩");
for(i=0;i<5;i++)
{
fread(&stu2[i],sizeof(struct student),1,fp);
printf("%s %d\n",stu2[i].num,stu2[i].score);
}
fclose(fp);
}
C语言rewind函数返回值为空 我用rewind函数没把指针直到开始 关闭文件然后打开就行。帮忙看看...
如果觉得《C语言rewind函数返回值为空 我用rewind函数没把指针直到开始 关闭文件然后打开就行》对你有帮助,请点赞、收藏,并留下你的观点哦!