【发布时间】:2016-03-15 09:35:58
【问题描述】:
这是我的问题-
char c,int nl=1;
printf("Enter string");
while((c=getchar()) != EOF)
{
if(c=='\n')
++nl;
}
printf("Number of lines=%d",nl);
没有错误。但是当我给出输入时,它会继续接受输入(不要从控制台屏幕出来)。为什么编译器无法读取 EOF 值?
我也试过while((c=getchar())!='\0'),但是不行!
【问题讨论】:
-
将
c的类型从char更改为int -
如果输入不是来自文件,您可以使用 Crl-D (Unix) 或 Ctrl-Z (Windows) 之一终止它。如果您不这样做,交互式 shell 将等待更多输入。
-
阅读例如this
getcharreference。密切注意函数的返回类型。 -
一般建议:如果某些事情没有按预期工作,(重新)阅读有关所用函数的文档,仔细。
-
除了 RTFM 部分,问为什么
getchar不返回字符是很合理的。欢迎来到 C.