可能重复:
如何在Linux中实现C的getch()函数?
MS-DOS Linux的conio.h头文件的等效版本是什么?
有没有办法取代它的功能?例如getch()
我正在使用
gcc和文本编辑器Geany来编译C代码.
我无法在Linux中找到conio.h的等效头文件.
在Linux中有getch()&getche()function功能吗?
我想制作一个开关盒基本菜单,用户只需按一个键即可提供选项,并且应该向前移动过程.按下他的选择后,我不想让用户按ENTER键.
int main(int argc, char *argv[], char *env[])
{
printf("Press any key to exit.\n");
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据手册页,
getch应该等到按下任何键
...但实际上它在按任意键之前直接返回.(返回的值是-1).
为什么?
更新
我在Linux上.Press any key to exit.如果不使用,我该如何实施getch()?
getchar() 只有在按Enter后才会返回,这不是我想要的.
这几天我在Ubuntu上工作。当我使用 gcc 编译 C 程序时,出现错误conio.h不存在。我想使用clrscr()和getch()发挥作用。你能告诉我这个头文件在linux中的替代品吗?
程序:
#include<stdio.h>
void main()
{
int time=1800;
while(1){
system("clear");
time-=1;
printf("%d\n",time);
sleep(1);
if(time==0)
pause();
}
}
Run Code Online (Sandbox Code Playgroud)
上述程序在时间达到 0 时停止。我的要求是在程序运行期间,如果我按下空格键或任何其他键等任何键,程序将暂停,再次按下该键,程序将恢复。因此,为此,在执行 while 条件之前,我们提交键盘中断的信号处理程序。在C中如何做到这一点。
获取键盘中断的函数是什么。我不想从用户那里得到输入,我想通过键盘处理用户产生的中断。
提前致谢..,
以前,我在支持#include <conio.h>头文件的Windows 上使用 c++/c 编译器,但在我拥有的 Linux 上
gcc (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software...
Run Code Online (Sandbox Code Playgroud)
我想要一个与getch(). 我不知道为什么我的编译器不支持头文件#include <conio.h>
在网上搜索后,我得到了这个,它说这cin.get();可能是最接近的等价物,但这两者的不同之处在于,如果我们编写getch()它,则不会显示在控制台上输入的字符,而如果我们使用cin.get()它输入一个字符,则会在控制台上显示该字符安慰。我不希望字符显示在控制台上。
usinggetchar()还会在控制台上显示字符。
因此,对于键盘上的向上键,我得到27,令人惊讶的是,对于向下键我也得到27.我需要我的程序在向上和向下键上表现不同,我似乎无法弄明白.我正在使用Linux,需要它才能用于Linux.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
int c = getchar();
if(c==27)
{
printf("UP");
}
if(c==28)
{
printf("DOWN");
}
}
Run Code Online (Sandbox Code Playgroud)