关于C语言中“文件”的问题!
麻烦大家帮我看一下这个程序有什么问题,我的目的是将键盘输入的数据存在二进制文件中,然后再读出。它一般是运行第1遍是结果是正确的,但第2遍结果就不对了,都是乱码,为什么呢?
对文件的操作很不熟练,请大家帮忙。
#include <stdio.h>
#define NULL 0
struct student{
char name[10];
int score;};
main()
{
FILE *fp;
struct student s[4],t[4];
int i;
fp=fopen("x.txt","wb");
if(fp==NULL)
printf("error!");
for(i=0;i<4;i++)
{
scanf("%s%d",s[i].name,&s[i].score);
fwrite(&s[i],sizeof(struct student),1,fp);
}
printf("the messages are:\n");
printf("name score\n");
rewind(fp);
for(i=0;i<4;i++)
fread(&t[i],sizeof(struct student),1,fp);
for(i=0;i<4;i++)
printf("%-10s%d\n",t[i].name,t[i].score);
fclose(fp);
}