繁体   English   中英

如何使用fscanf从文本文件复制到结构

[英]how to copy from text file to struct using fscanf

    #include <stdio.h>
#include <stdlib.h>



typedef struct Student{
char nume[30];
char prenume[30];
float medie;
}Student;

int main()
{   FILE *st= fopen("input.txt","r");
    Student a[10];
    int i;
    for(i=0;i<10;i++)
        fscanf(st,"%s %s %f",a[i].nume,a[i].prenume,a[i].medie);
    fclose(st);
    return 0;
}

这应该从列表中读取名字,姓氏和数字,为什么它会崩溃?

列表如下所示:

ALEXANDRU Tudor 2.23
AMUZA Marius 2.15
CELCAN Alexandra 2.29
KONRAD Eric 2.15
...

几乎可以肯定,因为您将a [i] .medie(浮点数的值)而不是&a [i] .medie(浮点数的地址)传递给fscanf()。

但是如果文件input.txt不存在或不可读,您也会崩溃,因为您不检查fopen()返回的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM