为什么当我尝试读取文件时文件变为空?

Why does the file change to null when I try to read it?

我正在尝试读取存在于我的项目文件夹中的文件。但是当我想获取其中的字符串时,文件的数据更改为 (null) 。 我尝试了 "w" 和 "r" 但其中 none 有效。 这是我的代码:

    FILE* f;
    if (!(f =fopen("a.txt", "r"))) {printf("Could not open file\n"); return;}
    char s[10000];
    fgets(s, 10000, f);
    printf("%s", s);

Output:

(null)
  • Note : There is no error in opening the file.

here is the file after opening

Edit: here is the full version of my code:

    FILE* channelfile;
    char filename[100] , name[]="hi";
    sprintf(filename, "./Resources/Channels/%s.cyko", name);

    if (!(channelfile =fopen("hi.cyko", "r"))) {printf("Could not open file\n"); return;}
    char s[10000];
    fgets(s, 10000, channelfile);
    printf("%s", s);

cyko is my file type (it is not general)

该文件包含文本 (null),如您的屏幕转储所示。

因此,打印文件内容会打印 (null).

QED.

鉴于关注此问题的人较多,我现在将结果告知他们:

在向 OP 解释了如何使用调试器后,他发现实际问题不在他发布的代码中,而是在他项目的另一部分。

他认为是他发布的代码导致了这个问题,因为他只是在更改他发布的代码后才遇到这个问题。但是,似乎此更改仅触发了错误;错误本身在程序的另一部分。