The*_* K. 0 c buffer input fgets
我试图从C中的文件中读取fgets()但是我遇到了以下问题:
虽然我可以使用fopen()以下命令成功打开文件:
if ( file=fopen(filename, "r") == NULL )
{
printf("Couldn't open specified file. Please try again.");
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我无法从中读到任何东西.我正在使用以下循环,虽然没有打印任何内容并且执行成功终止.
while ( (fgets(inputLine, 1023, file)) != NULL)
{
printf("Hello world");
}
Run Code Online (Sandbox Code Playgroud)
这与实际文件名,文件大小或文件内容无关.似乎没有任何工作,并且调试器中没有任何内容显示为错误.我试过的示例文件是直接复制和粘贴的以下内容:
test.txt
#include <stdio.h>
int main ()
{
printf("Hello World");
}
Run Code Online (Sandbox Code Playgroud)
你有没有猜到为什么会这样?
注意:我已经从这个 S'O问题中获取了循环代码,所以我猜它是正确的.
这是不正确的:
if ( file=fopen(filename, "r") == NULL )
Run Code Online (Sandbox Code Playgroud)
尝试:
if ( (file=fopen(filename, "r")) == NULL )
Run Code Online (Sandbox Code Playgroud)
他们写的方式等同于file = 0(假设文件成功打开.如果没有,则相同file = 1).这不是你想要的.