我的主要目的是使getchar一回到一个字符,而不是等待ENTER键.我试过了
int main() { setvbuf(stdin,NULL,_IONBF,0); getchar(); return 0; }
将其与setvbuf的原型进行比较
setvbuf ( FILE * stream,char * buffer,int mode,size_t size );
它应该将stdin设置为无缓冲模式.
但是还是getchar()一直在等待ENTER
我看过这样的相关帖子
解决方法
终端驱动程序在返回之前不会返回任何东西,即使read()操作也可以接受已经存在的内容.
要从终端获取逐字符输入,您必须将其从规范模式转换为raw或cbreak模式,并且需要完全不同的操作.看看‘General Terminal Interface’上的POSIX手册如何控制终端.或者考虑使用curses库.
原文地址:https://www.jb51.cc/c/111346.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。