为什么当我尝试读取文件时文件变为空?
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 解释了如何使用调试器后,他发现实际问题不在他发布的代码中,而是在他项目的另一部分。
他认为是他发布的代码导致了这个问题,因为他只是在更改他发布的代码后才遇到这个问题。但是,似乎此更改仅触发了错误;错误本身在程序的另一部分。
我正在尝试读取存在于我的项目文件夹中的文件。但是当我想获取其中的字符串时,文件的数据更改为 (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 解释了如何使用调试器后,他发现实际问题不在他发布的代码中,而是在他项目的另一部分。
他认为是他发布的代码导致了这个问题,因为他只是在更改他发布的代码后才遇到这个问题。但是,似乎此更改仅触发了错误;错误本身在程序的另一部分。