无论我们接触哪一门编程语言第一个程序基本上都是hello world,所以hello world又被誉为世界上最伟大的程序。所以我在这里介绍一个在编写hello world的一些特殊用发。
首先介绍一些在printf中的一些格式化控制符。
printf("\033[47;31mhello world\033[5m");
47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码. 颜色代码: QUOTE:
字背景颜色范围: 40--49
字颜色: 30--39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色 ANSI控制码: QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
等等。根据以上提供的printf中的一些特殊参数我用了以上参数中的一小部分实现了hello world的流水灯。并且把字体设置为红色。也就是说运行程序后在屏幕上显示的效果是从h每隔一秒钟显示出一个字符。显示完一次过后字重头开始显示。
#include <stdio.h>
int main(){
int i=0;
while(1)
{
for(i=0;i<10;i++)
{
printf("\r\033[47;31mhello world\033[%dD\033[K",10-i);
fflush(stdout);
sleep(1);
}
}
return 0;
}