用C读取文件是不是有效?

时间:2017-11-16 19:05:10

标签: c file

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

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%d\t%d\t%d\n", &p[i], &list[i].tp, &list[i].gpm, &list[i].deg);
    }

    for(int i = 0; i < 21; i++){
        printf("%d:\t%d\t%d\t%d\n", 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,其中大部分都是自我嘲笑的

1 个答案:

答案 0 :(得分:4)

fscanf(fopen, "%d:\t%d\t%d\t%d\n"

我不知道怎么可能甚至编译,但你传递的函数指针需要FILE*。这肯定无法正常工作。

通过该fopen()电话的正确回复价值(此时您已放弃)。