课程名称: 物联网/嵌入式工程师
课程章节: 第四周 C语言项目实战与阶段笔试
主讲老师: 大白老师
课程内容:
实际上第四周的第一个实战是日历系统,一会再简单分析一下思路,现在主要学习的是vt100控制码的介绍以及俄罗斯方块。
课程收获:
- 日历系统 :
阶段1:定义一个isleap_year()函数对用户输入的年份进行闰年的判断
阶段2:定义一个Total_day()函数,判断用户输入的年月日是当年的第几天
思路就是定义1-12月的天数数组,如果是闰年2月29天,天数数组[1]+1。
阶段3:根据基姆拉尔森计算公式计算 用户输入的年月日是星期几
阶段4:循环打出日历,星期几,假如星期4,则打印3个’\t’,然后定义i=1打印,3+i=7换行。
先这样,因为日历比较简单,重点放在俄罗斯方块上。
- vt100控制码:
VT100控制码是用来在终端扩展显示的代码。所有的控制符全部以\033打头(即ESC的ASCII码),用输出语句来输出,可以输出不同颜色的字符。在C语言程序中,一般用printf来输出VT100的控制字符。
常用数字控制码
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \33[37m 设置字体颜色
\033[40m -- \33[47m 设置背景色
\033[字体背景色;字体颜色m
常用控制码
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
示例
#include <stdio.h>
int main()
{
printf("\033[2J"); //清屏
printf("\033[20;14H"); //光标移动到(14,20)的位置
//
printf("\033[43;31m");//显示黄色背景,红色字体
printf("hello world\n");
printf("\033[?25l"); //隐藏光标
printf("\033[0m"); //关闭属性
return 0;
}
用完后记得关闭属性,因为可能影响到后面的输出。
今天就先写到vt100,俄罗斯方块明天再单独写。
附上今天的作业:
答案:
每日一句:
如果一艘船不知道该驶去哪个港口,那么任何方向吹来的风都不会是顺风。
——《塔木德》