我已经在这方面寻找了很多解决方案,但都没有满足我的需求。
我需要:
scanf()
读取以空格分隔的两个整数。到目前为止,我一直在使用getchar()
来实现检查和清除。问题是如果缓冲区中没有任何内容,getchar()
会等待一个字符。
如何检查输入缓冲区/流中是否有任何内容?这样如果什么都没有,我不必用{{1}清除缓冲区}。
答案 0 :(得分:2)
您不能使用标准C执行此操作 - 检查extradata_size
缓冲区中的字符,如果不存在则立即返回。
然而,我不认为这是真的需要。只需使用stdin
读取一行,等待用户输入0或更多字符,然后输入,这会将fgets()
放入'\n'
。然后stdin
将返回。
使用fgets()
记录此时的扫描位置,并确保适当的空间分隔符并检测额外的垃圾。
"%n"