min*_*ing 0 c stdin fgets segmentation-fault eof
所以我用fgets读了一行
line = fgets(l, BUFSIZ, stdin);
Run Code Online (Sandbox Code Playgroud)
我从我的理解控制+ d是EOF,所以我尝试了
if(line[0] == EOF)
continue;
Run Code Online (Sandbox Code Playgroud)
回到循环的顶部.但这导致了段错误......还有另外一种方法吗?
由于机器生成EOF
的Ctrl + D,你应该检查fgets()
的NULL
,因为fgets()
有义务回报NULL
在文件末尾.
line = fgets(l, BUFFSIZ, stdin)
if (line == NULL)
continue;
Run Code Online (Sandbox Code Playgroud)
在您的代码中,您试图取消引用NULL
导致段错误的指针.