如何解决在“按Enter继续”之后清除标准输入?
我试图让用户通过按ENTER键确认他的操作-如果按下任何其他键,则不会发生所述“操作”。
但是,我想清除if((ch=getchar())=='\n') {...}
而不是简单的stdin
,以防用户输入类似hello\n
的内容,而不是在下次输入时让其读取在我的程序中。
我用来清除stdin
的函数是:
void eat()
{
int eat; while ((eat = getchar()) != '\n' && eat != EOF);
}
但是,这种策略使用户不得不按ENTER键两次,因为它'吃'应该使换行符将输入发送给我的换行符程序(在终端中)。
最简单,最优雅的解决方案是什么?
注意::我不能使用不可移植的解决方案,例如将控制台设置为使用POSIX terminos.h
立即发送每个字符。
解决方法
听起来像您想读一行,然后检查它是否为空?看起来像是fgets(...,stdin)
char mystring [100];
fgets (mystring,100,stdin);
if (*mystring == '\n') {//confirmed}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。