【发布时间】:2013-05-26 16:50:07
【问题描述】:
scanf("%9s", line);
我从标准输入中读取了一行(最多 9 个符号),然后我想检查我是否从用户输入中读取了所有字符。有什么优雅的方法吗?
【问题讨论】:
-
你试过
feof()吗? -
你的意思是 feof(stdin) 吗?我刚刚尝试过,无论我输入什么长度的字符串,它都会返回 0
-
'
feof(stdin)' 无论我输入什么长度的字符串都返回 0'——这告诉你下一个 I/O 操作还有一个换行符要读取......唯一一次赢了如果您遇到没有最终换行符的 EOF,则不会留下任何数据。 -
实际上有一些标准输入的实现不起作用,并且无论流上的实际内容如何,都会导致始终为 0。