【发布时间】:2015-03-22 07:18:44
【问题描述】:
所以我用 fgets 读了一行
line = fgets(l, BUFSIZ, stdin);
据我了解 control+d 是 EOF,所以我尝试了
if(line[0] == EOF)
continue;
回到循环的顶部。但这导致了段错误......还有其他方法吗?
【问题讨论】:
-
来自 Linux 中的
fgets手册页:fgets() 在成功时返回 s,在错误或未读取字符时出现文件结尾时返回 NULL。 -
Ctrl-D 是特定于操作系统的(在 C99 标准中未指定)。在 Linux 上,Ctrl-D is not a character 但通常是 文件结束 条件
标签: c segmentation-fault stdin eof fgets