c - 用 C 读取文件不起作用?

标签 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 语言,大部分都是自学的

最佳答案

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

我不知道它是如何编译的,但是您正在传递一个函数指针,其中需要 FILE* 。这肯定无法正常工作。

要传递的正确内容是您的 fopen() 调用的返回值(目前您已将其丢弃)。

关于c - 用 C 读取文件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337303/

相关文章:

c++ - 从 C 调用静态 C++ 方法在编译时给出 undefined reference

c++ - C++无法返回已添加到 vector 列表中的所有变量

python - 如何在 Linux 上的 Python 中使用 open() 和追加模式以及eek()?

c 程序显示二叉树,但它没有显示任何输出,即使它没有显示任何错误。这个程序有什么错误

使用 DLL 的循环队列,全局声明的指针未正确初始化

c - 用 C 编写简洁的代码

c - 使用 C 将整数数组写入文件

c - 在我的 C 程序中,为什么我的跟踪循环和实际输出不同?

java - FileInputStream 为空?

python - 如何只读入文件的每一行?