1.关闭缓存区
先用 : system("sys -icanon"); 【关闭缓存区】
stty:是命令名称,用于设置或显示终端设备的状态。
-icanon:是一个选项,用于关闭规范模式(canonical mode)。在规范模式下,终端会缓冲输入,直到收到一个新行字符(通常是 Enter 键)才将其传递给程序。关闭规范模式后,输入将立即被传递,而不需要等待新行字符。
2.上下的输入
再用 ch1 = getchar(); 接收
ch2 = getchar();
ch3 = getchar();
三个 getchar() 可分开依次判断;
上键: esc [ A
ASCII: 27 97 65
下键: esc [ B
ASCII: 27 97 66
3.回车的输入
在 Unix/Linux 系统中,通常使用 \n(换行符,Line Feed,ASCII 值为 10)来表示新的一行。在文本文件中,每个新行的结束通常只使用 \n。
在 Windows 系统中,传统的文本文件和许多 API 函数使用 \r\n 序列来表示新的一行。这是因为 Windows 继承了早期的 IBM PC 的文本文件格式,其中使用了两个不同的控制字符:\r 用于将打印头移动到行首(回车),\n 用于移动到下一行的开始(换行)。
在 Mac OS 9 及之前的版本中,文本文件通常使用单个 \r 字符来表示新行。
ASCII: \n 10 转义字符代表 换行符
\r 13 转义字符代表 回车键
因此在Linux下在键盘输入回车,ch = getchar(); ch会得到'\n';