linux系统下的getch和getche函数的实现
2015-05-21 21:00 dream_er 阅读(1170) 评论(0) 编辑 收藏 举报
首先要知道:getch与getche是在conio.h这个头文件里面的,但是,但是conio.h这个文件不是c语言的标准库文件,所以在linux的gcc下是没有这个头文件的,而我们大多数人使用的主要是getch与getche函数,因为getchar函数的功能不是很强大,言归正传,先灌输一些关于linux的知识
stty是一个用来改变并打印终端行设置的常用命令。
1 ,在命令行下,禁止输出大写的方法
stty -icanon 设置一次性读完操作,如使用getchar()读操作,不需要按enter
stty icanon 取消上面设置
stty -a 查看 信息
stty -echo 设置命令不被显示
stty echo 取消不显设置
stty raw -echo
stty raw echo
stty iuclc #开启
stty -iuclc #恢复
2,在命令行下禁止输出小写
stty olcuc #开启
stty -olcuc#恢复
3,打首先要知道:getch与getche是在conio.h这个头文件里面的,但是,但是印出终端的行数和列数
stty size
4,改变ctrl+D的方法:
stty eof "string"
系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变!
5,屏蔽显示
stty -echo #禁止回显
stty echo #打开回显
测试方法:
stty -echo;read;stty echo;read
6,忽略回车符
stty igncr #开启
stty -igncr#恢复
7.定时输入
timeout_read()
{
timeout=$1
old_stty_settings=`stty -g` #save current settings
stty -icanon min 0 time 100 #set 10seconds,not 100seconds
eval read varname #=read $varname
stty "$old_stty_settings" #recover settings
}
更简单的方法就是利用read命令的-t选项
read -t 10 varname
可能上面说得有些多,那就开始上代码把,注意,干货来了
char getch()
{
char c;
system("stty -echo");
system("stty -icanon");
c=getchar();
system("stty icanon");
system("stty echo");
reutrn c;
}
char getche()
{
char c;
system("stty -icanon");
c=getchar();
system("stty icanon");
return c;
}
ok完成了,你可以直接用一个.h文件把上面的代码写进去然后就可以直接使用了,谢谢
stty是一个用来改变并打印终端行设置的常用命令。
1 ,在命令行下,禁止输出大写的方法
stty -icanon 设置一次性读完操作,如使用getchar()读操作,不需要按enter
stty icanon 取消上面设置
stty -a 查看 信息
stty -echo 设置命令不被显示
stty echo 取消不显设置
stty raw -echo
stty raw echo
stty iuclc #开启
stty -iuclc #恢复
2,在命令行下禁止输出小写
stty olcuc #开启
stty -olcuc#恢复
3,打首先要知道:getch与getche是在conio.h这个头文件里面的,但是,但是印出终端的行数和列数
stty size
4,改变ctrl+D的方法:
stty eof "string"
系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变!
5,屏蔽显示
stty -echo #禁止回显
stty echo #打开回显
测试方法:
stty -echo;read;stty echo;read
6,忽略回车符
stty igncr #开启
stty -igncr#恢复
7.定时输入
timeout_read()
{
timeout=$1
old_stty_settings=`stty -g` #save current settings
stty -icanon min 0 time 100 #set 10seconds,not 100seconds
eval read varname #=read $varname
stty "$old_stty_settings" #recover settings
}
更简单的方法就是利用read命令的-t选项
read -t 10 varname
可能上面说得有些多,那就开始上代码把,注意,干货来了
char getch()
{
char c;
system("stty -echo");
system("stty -icanon");
c=getchar();
system("stty icanon");
system("stty echo");
reutrn c;
}
char getche()
{
char c;
system("stty -icanon");
c=getchar();
system("stty icanon");
return c;
}
ok完成了,你可以直接用一个.h文件把上面的代码写进去然后就可以直接使用了,谢谢