读取 C 语言中的文件不起作用?



所以我试着环顾四周,但找不到答案。我正在尝试从我用其他程序编写的文件读取。编写它工作正常,但是当我尝试阅读它时,根本没有输出。这是代码。

struct data{
    int tp, gpm, deg;
};
int main()
{
    struct data list[21];
    int p[21];
    list[0].tp = 10;
    FILE * fout;
    fopen("data_list", "r");
    for(int i = 0; i < 21; i++){
        fscanf(fopen, "%d:t%dt%dt%dn", &p[i], &list[i].tp, &list[i].gpm, &list[i].deg);
    }
    for(int i = 0; i < 21; i++){
        printf("%d:t%dt%dt%dn", p[i], list[i].tp, list[i].gpm, list[i].deg);
    }
    fclose(fout);
    return 0;
}

这是我尝试读取的文件

-10:651 17  108
-9: 514 16  142
-8: 588 16  169
-7: 542 10  160
-6: 531 17  127
-5: 688 15  158
-4: 619 18  122
-3: 658 14  170
-2: 588 11  182
-1: 541 12  139
+0: 641 19  114
+1: 668 17  200
+2: 517 19  157
+3: 589 13  121
+4: 696 13  140
+5: 526 12  157
+6: 630 12  137
+7: 685 11  105
+8: 556 11  120
+9: 645 15  188
+10:624 19  185

谁能帮我?我只学了几个月的C,大部分都是自学的

fscanf(fopen, "%d:t%dt%dt%dn"

我不知道它是如何编译的,但是您正在需要FILE*的地方传递一个函数指针。 这绝对不会正常工作。

要传递的正确内容是fopen()调用的返回值(目前您一直在丢弃该值(。

最新更新