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

文件的读写有关问题

2012-05-28 
文件的读写问题这是结构体定义typedef struct student{int numchar name[10]float mathfloat englishf

文件的读写问题
这是结构体定义
typedef struct student{
int num;
char name[10];
float math;
float english;
float cProgramming;
}STU;
这是读文件部分的代码:
while(!feof(fp)){
ps=(STU *)malloc(sizeof(STU));

fscanf(fp,"%d%s%f%f%f",&ps->num,ps->name,&ps->math,&ps->english,&ps->cProgramming);
printf("学号:%d\n",ps->num);
printf("姓名:%s\n",ps->name);
printf("数学成绩:%f\n",ps->math);
printf("英语成绩:%f\n",ps->english);
printf("c语言成绩:%f\n",ps->cProgramming);


free(ps);
 
}
这是文件的内容:
1whj100.000000100.000000100.000000
2byw90.00000090.00000090.000000
我是用fprintf来写进文件的,这样读文件会出现错误,num读到的是正确的,但name读到的就是“whj100.000”,我的理解是因为name是长度为10的数组,所以读了10个字符,但是它不是字符串吗?不应该是读九个字符然后加个\0吗?还有就是怎么解决读入错误。。。

[解决办法]

C/C++ code
while(!feof(fp)){ps=(STU *)malloc(sizeof(STU));fscanf(fp,"%d%s%f%f%f",&ps->num,ps->name,&ps->math,&ps->english,&ps->cProgramming);printf("学号:%d\n",ps->num);printf("姓名:%s\n",ps->name);printf("数学成绩:%f\n",ps->math);printf("英语成绩:%f\n",ps->english);printf("c语言成绩:%f\n",ps->cProgramming);free(ps);  } 

热点排行