我有下面的代码,
fflush(stdin);
print("Enter y/n");
scanf("%c",&a);
在这里,它在提供输入之前退出。看起来问题是因为它没有刷新可能包含一些垃圾字符的输入缓冲区。是否有刷新(stdin)的替代方案。此代码片段在 Solaris 中工作但它在 Linux 中不起作用。
这在C FAQ。也可以看看:解释。建议的解决方案:
事实上,刷新 stdin 适用于某些实现is wrong.
有些供应商确实实现了fflush,所以
fflush(stdin) 丢弃未读的内容
字符,虽然可移植程序
不能依赖于此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)