为什么不能读入数据?

来源:百度知道 编辑:UC知道 时间:2024/06/27 12:44:49
#include<stdio.h>
struct student
{int num;
int score;
}stu[12];

void main()
{
FILE *fp;
int i;
fp=fopen("iChinese","rd");
for(i=0;i<12;i++)
fread(&stu[i],sizeof(struct student),1,fp);
printf(" number score:\n");
for(i=0;i<12;i++)
printf("%10d%10d\n",stu[i].num,stu[i].score);
}
这个是我写的,想读入“iChinese.txt"中的一下数据
1001 57
1002 64
1003 50
1004 66
1005 85
1007 66
1008 85
1009 60
1010 72
1011 68
1012 55
1013 60
1014 88
1015 60
为什么不行的,显示的都是 0。
还有,c读入的文件要放在哪里才可以实现啊,顺便教下怎么把数据写入一个固定例如”stu.dat"文件中

你文件中的数据是ascii码的,但读入是却放入了int型量中,自然不对啦。
其实你需要按行读入到一个char型数组中,然后转换成int型再赋给num和score。
会读入文件,写出也就不难了,fopen时给出文件名并选择创建或者追加模式,然后用fwrite函数就可以写入了。
别忘了文件操作完之后应该fclose,这是好习惯。