linux 不回车直接读取一个字符的方法
来源:互联网 发布:b超单上的数据看男女 编辑:程序博客网 时间:2024/05/17 08:00
windows下面有 getch() 可以直接输入一个字符,而不需按回车。
linux下如果想直接输入一个字符,只能使用getchar() ,而且要按回车才能触发输入,否则会一直阻塞在输入这里。网上找到一个解决办法,稍加改进,能实现跟windows下 getch() 一样的效果。
代码如下:添加头文件就可以直接使用了。
#include <stdio.h>#ifdef _WIN32 //Linux platform #include <conio.h>#else #include <termios.h>#endifchar get1char(void){#ifdef _WIN32 // Do nothing#else // 保存并修改终端参数 struct termios stored_settings; struct termios new_settings; tcgetattr (0, &stored_settings); new_settings = stored_settings; new_settings.c_lflag &= (~ICANON); new_settings.c_cc[VTIME] = 0; new_settings.c_cc[VMIN] = 1; tcsetattr (0, TCSANOW, &new_settings);#endif int ret = 0; char c;#ifdef _WIN32 c = getch();#else c = getchar(); putchar('\b'); // 删除回显#endif printf("input: [%c]\n", c);#ifdef _WIN32 // Do nothing#else tcsetattr (0, TCSANOW, &stored_settings); // 恢复终端参数#endif return c; }
参考:http://www.cppblog.com/fwxjj/archive/2007/07/16/28112.html
0 0
- linux 不回车直接读取一个字符的方法
- linux 不回车直接读取一个字符的方法(termios结构的描述了终端的模式,在这段代码中我们改变了它,使得终端能够接收到键盘输入马上返回。)
- 键盘键入字符,不敲回车直接读取
- 不用回车读取一个字符
- linux下不按回车如何读取字符&&读取到字符不回显
- 不回车获得一个字符(UNIX和LINUX C++)
- 关于回车直接执行事件的方法
- 不按回车就接受一个字符输入!
- 不按回车就接受一个字符输入!
- 不按回车就接受一个字符输入
- 如何不按回车就接受一个字符输入
- Linux中cp直接覆盖不提示的方法
- Linux使用cp命令直接覆盖不提示的方法
- Linux中cp直接覆盖不提示的方法
- Linux使用cp命令直接覆盖不提示的方法
- Linux中cp直接覆盖不提示的方法
- linux 复制 直接覆盖不提示的方法
- Linux使用cp命令直接覆盖不提示的方法
- 静态导入
- Android布局控件之RelativeLayout详解
- iOS 关于线程的整理
- iOS 7: 如何为iPhone 5S编译64位应用
- hadoop1 权限管理
- linux 不回车直接读取一个字符的方法
- Linux下的Memcache安装
- 原生JS
- 线段树的浅理解
- C++ 中dynamic_cast<>的使用方法
- 安装win32Oracle11g时报错
- 深入分析Java Web技术内幕
- 计算机硬件挑选,i3
- intent flags标记