如何在不等待换行的情况下在C中接受用户输入?

椅子55

我尝试使用getch()无济于事。我在Rasbian linux上使用geany ide和gcc编译器。我已经安装了ncurses库,并且正在使用它。

int input(){
int in;
in = getch();
printf("%i", in);
if(in == 'w'){
    return 1;
}
else if(in == 's'){
    return 0;
}
else{
    return 3;
}

}

帕斯卡忠实

为了getch()工作,您需要在程序开始时初始化ncurses。这是通过至少调用initscr()并禁用行缓冲来实现的cbreak()cbreak手册页中

通常,tty驱动程序会缓冲键入的字符,直到键入换行符或回车符为止。cbreak例程禁用行缓冲和擦除/杀死字符处理(中断和流控制字符不受影响),使用户键入的字符可立即用于程序。Nocbreak例程使终端返回正常(煮熟)模式。

最初,终端可以处于或不处于cbreak模式,因为该模式是继承的;因此,程序应显式调用cbreak或nocbreak。大多数使用curses的交互式程序都会设置cbreak模式。请注意,cbreak会覆盖raw。

或者,或者cbreak(),禁用行缓冲的另一种方法是通过使用设置“原始模式” raw()

有关读取ncurses密钥的完整示例,请参见例如
https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/keys.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不等待其检索的情况下在C ++中获取内存位置?

如何在jshell脚本中接受用户输入?

如何在swift和xcode中接受用户输入

如何在没有预定义字符的情况下接受用户输入并设置结构值?

如何在NAV 2016中使用C / AL接受用户输入?

在C中接受用户的连续输入

如何在Python脚本中接受管道输入,然后接受用户提示的输入?

当python中的空格和换行符分隔开来时,如何接受用户输入?

如何在不等待整行的情况下在程序输出前添加字符串?

如何在不等待的情况下安全地在C#中调用异步方法

如何在while循环中接受用户输入

如何在不等待用户在 discord.py 中回复的情况下创建一系列问题

c - 如何在没有`scanf()`的情况下在c中获取整数和浮点输入?

如何在Golang(fmt.scan)中接受用户输入

我如何在discord.py中接受用户输入

如何在使用Plink执行的bash文件中接受用户输入?

如何在 Discord 中创建一个接受用户输入的弹出窗口?

如何使用Java在数组中接受用户输入?

如何在自动换行段落打开的情况下在vim中换行?

在C ++中,如何在不为每个输入分配变量的情况下接受大量输入?

如何在不等待执行结束的情况下从用户界面启动作业?

如何在python中不发生EOFError的情况下在线程中获取用户输入?

如何从函数内接受用户输入?

Bash:如何正确接受用户输入?

无法在perl中接受用户输入

无法接受用户在 bash 中的输入

无法在 Dart 中接受用户输入

我如何在python中接受用户的嵌套字典

我该如何在C#中设置三种方法来接受用户输入并对输入进行数学运算?