前期准备:安装好虚拟机及Linux系统
实验目的:了解 Linux IO 设计的控制
实验步骤:
1 实现清屏、设置光标位置、设置背景颜色及设置字体颜色等操作
*清屏
在Linux系统中真正实现清屏功能,而不仅仅是强行的加上几个空行让输出显示在屏幕的第一行中以达到看似清屏的效果,则需要用到以下语句来实现:
#include <stdlib.h>
...
system("clear && printf '\e[3J'");
*设置光标位置
通过以下语句光标会移动到屏幕中第y行第x列的位置
printf("\033[y;xH");
*设置背景颜色
字背景颜色范围: 40–47
40: 黑 41: 红 42: 绿 43: 黄
44: 蓝 45: 紫 46: 深绿 47: 白色
printf("\033[40m"~"\033[47m");
*设置字体颜色
字体颜色范围: 30–37
40: 黑 41: 红 42: 绿 43: 黄
44: 蓝 45: 紫 46: 深绿 47: 白色
printf("\033[30m"~"\033[37m");
2 实现kbhit()
由于检测 tty 输入的程序,远远超出了入门者的能力,所以这里使用了来源于 Linux下非阻塞地检测键盘输入的方法 (整理) 的代码,将原来贪吃蛇程序的代码将其结合,实现了贪吃蛇程序中非阻塞地检测键盘输入的效果。
还可以通过语句printf("\033[?25l");
隐藏光标,最终达到键盘输出,屏幕不回显并且每次输入不需要按回车程序即能读取输入数据的功能。