【发布时间】:2015-12-31 14:26:23
【问题描述】:
我已经为此搜索了很多解决方案,但没有一个能满足我的需求。
我需要:
- 使用
scanf()读取两个用空格分隔的整数。 - 如果只输入一个整数,我需要检查并清除缓冲区。
- 如果输入的整数超过 2 个,我需要检查并清除缓冲区。
到目前为止,我一直在使用getchar()来实现检查和清除。问题是如果缓冲区中没有任何内容,getchar() 会等待一个字符。
如何检查输入缓冲区/流中是否没有任何内容?这样,如果没有任何内容,我不必使用getchar() 清除缓冲区。 p>
【问题讨论】:
-
您可以检查行尾字符。如果对
getchar();的最后一次调用返回'\n',那么您已经到达了行尾。 -
@CoolGuy 我已经想到了。它不适用于我的目的。我需要一种不同的方式来检查。
-
应该的。显示您的代码以及一些示例输入和输出。我认为没有其他方法可以做到这一点。
标签: c input stream buffer flush