求助:C语言读取文件的问题

来源:互联网  时间:2016/7/16 5:02:41

关于网友提出的“ 求助:C语言读取文件的问题”问题疑问,本网通过在网上对“ 求助:C语言读取文件的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 求助:C语言读取文件的问题
描述:

我读取文件的一行数据
文件内容如下
91010 test 10.0 10.0 10.0 30.0 10.0
代码如下


STU *init_student(STU *stu_head)
{
  STU *node = stu_head;
STU *head = stu_head;
STU *new_node;
int i;
FILE *fp;
char name[10];
int num;
ASK_STU(new_node);
new_node->next=NULL;
fp = fopen(FILE_NAME, "r+");
rewind(fp);
while((i = fscanf(fp, "%ld%s%0.1f%0.1f%0.1f%0.1lf%0.1f\n", &new_node->ID, new_node->name,\
&new_node->chinese, &new_node->math, &new_node->english, &new_node->all_sub, &new_node->average)) == 7){
if(!head)
head = node = new_node;
else{
while(node->next)
node = node->next;
node->next = new_node;
}
ASK_STU(new_node);
new_node->next = NULL;
}
fclose(fp);
return head;
}

结果是scanf只能读到“91010”和“test”两组数据,返回值为2,求解救啊!
解决方案1:

这样可以读的,昨天刚读过一个类似的
91010 test 10.0 10.0 10.0 30.0 10.0


fscanf(fp, "%ld %s %f %f %f %f %f\n"...
解决方案2:

引用楼主 ayangke 的回复:
我读取文件的一行数据
文件内容如下
91010 test 10.0 10.0 10.0 30.0 10.0
代码如下
C/C++ code
STU *init_student(STU *stu_head)
{
     STU *node =    stu_head;
    STU *head = stu_head;
    STU *new_node;
    int i;
   ……

在printf里%0.1f是格式控制符而在scanf里%0.1f是非法格式。。用%f试试

上一篇高手赐教,指针写冒泡法
下一篇支持windows与linux的Space操作系统,太惊讶了
明星图片
相关文章
《 求助:C语言读取文件的问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)