帮忙看这个fscanf语句

gy_bison 2007-02-04 02:43:12
void fromfile() // 从文件中读入
{
FILE *fp; // 定义文件指针

// 打开文件
if((fp = fopen(FILENAME,"rt")) == NULL)
{

}
sum = 0; // 从文件中读入时,将原有信息清除

while (!feof(fp) ) // 直至文件中内容读完
{

       fscanf(fp,"%s %s %d %d %d %d\n",stu[sum].No,stu[sum].Name,&stu[sum].C,&stu[sum].Java,&stu[sum].SQL,&stu[sum].Average);
   sum++;
}

fclose(fp); // 关闭文件

}
这个函数中的fscanf从文件中读数据时,第一个字符读不出,请高手指导,运行结果问题如下:
文件内容:
999 aa 77 97 99 91
777 ss 66 66 66 66
888 ee 22 22 22 22
读出的内容居然是
99 aa 77 97 99 91
77 ss 66 66 66 66
88 ee 22 22 22 22
...全文
320 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2007-02-04
  • 打赏
  • 举报
回复
fscanf(fp,"%s%s%d%d%d%d\n",stu[sum].No,stu[sum].Name,&stu[sum].C,&stu[sum].Java,&stu[sum].SQL,&stu[sum].Average);
//格式控制 字符串去掉空格

另外,
清检查是否在输出查看之前,
有没有对 stu[sum].No 进行过相关的操作 ~
gy_bison 2007-02-04
  • 打赏
  • 举报
回复
stu[sum].No在用fscanf(fp,"%s%s%d%d%d%d\n",stu[sum].No,stu[sum].Name,&stu[sum].C,&stu[sum].Java,&stu[sum].SQL,&stu[sum].Average)之前在内存中的值是正确的,这个语句执行后值就变了,格式控制的空格去了也不管用啊,另外我的调试环境是VC6.0

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧