Linux下光标定位与清屏函数

printf("\033[47;31mhelloworld\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[7m 反显

\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 显示光标

这样, 在某些时候就可以实现动态的输出.

 

http://blog.csdn.net/laobai0335/article/details/6701793

 

Linux平台清屏

printf( "\033[H\033[2J" );

printf("%c[2J",0x1b); /*清除屏幕*/
printf("%c[0;0H", 0x1b); /*把光标移动到(0,0)位置*/

 

转自:http://zisedeqing.blog.163.com/blog/static/9555087120129111485394/

[cpp]view plaincopyprint?

•  #include<stdio.h>

•  #include<unistd.h>

• 

•  // 清除屏幕

•  #defineCLEAR() printf("\033[2J")

• 

•  // 上移光标

•  #defineMOVEUP(x) printf("\033[%dA", (x))

• 

•  // 下移光标

•  #defineMOVEDOWN(x) printf("\033[%dB", (x))

• 

•  // 左移光标

•  #defineMOVELEFT(y) printf("\033[%dD", (y))

• 

•  // 右移光标

•  #defineMOVERIGHT(y) printf("\033[%dC",(y))

• 

•  // 定位光标

•  #defineMOVETO(x,y) printf("\033[%d;%dH", (x), (y))

• 

•  // 光标复位

•  #defineRESET_CURSOR() printf("\033[H")

• 

•  // 隐藏光标

•  #defineHIDE_CURSOR() printf("\033[?25l")

• 

•  // 显示光标

•  #defineSHOW_CURSOR() printf("\033[?25h")

• 

•  //反显

•  #defineHIGHT_LIGHT() printf("\033[7m")

•  #defineUN_HIGHT_LIGHT() printf("\033[27m")

• 

•  int main(int argc,char **argv)

•  {

•  printf("\033[31mThecolor,%s!\033[1m\n","haha");

•  printf("\033[31mThecolor,%s!\033[4m\n","haha");

•  printf("\033[31mThecolor,%s!\033[5m\n","haha");

•  printf("\033[31mThecolor,%s!\033[7m\n","haha");

•  printf("\033[31mThecolor,%s!\033[8m\n","haha");

•  printf("\033[31mThecolor,%s!\033[0m\n","haha");

•  printf("\033[47;31mThecolor,%s!\033[0m\n","haha");

•  printf("\033[47mThecolor,%s!\033[0m\n","haha");

•  sleep(2);

•  printf("\033[47m%s!\033[5A\n","up5");

•  sleep(2);

•  printf("\033[47m%s!\033[9B\n","down9");

•  sleep(2);

•  printf("\033[47m%s!\033[19C\n","right19");

•  printf("right19");

•  sleep(2);

•  printf("\033[47m%s!\033[10D\n","left10");

•  printf("left10");

•  sleep(2);

•  printf("\033[47m%s!\033[50;20H\n","moveto y:50,x 20");

•  printf("y50x 20");

•  sleep(2);

•  printf("\033[47m%s!\033[?25l\n","hidecursor");

•  sleep(2);

•  printf("\033[47m%s!\033[?25h\n","sowcursor");

•  sleep(2);

•  printf("\033[47m%s!\033[2J\n","clearscleen");

•  sleep(2);

• 

•  return0;

•  }

#include<stdio.h>

#include<unistd.h>

 

// 清除屏幕

#defineCLEAR() printf("\033[2J")

 

// 上移光标

#defineMOVEUP(x) printf("\033[%dA", (x))

 

// 下移光标

#defineMOVEDOWN(x) printf("\033[%dB", (x))

 

// 左移光标

#defineMOVELEFT(y) printf("\033[%dD", (y))

 

// 右移光标

#defineMOVERIGHT(y) printf("\033[%dC",(y))

 

// 定位光标

#defineMOVETO(x,y) printf("\033[%d;%dH", (x), (y))

 

// 光标复位

#defineRESET_CURSOR() printf("\033[H")

 

// 隐藏光标

#defineHIDE_CURSOR() printf("\033[?25l")

 

// 显示光标

#defineSHOW_CURSOR() printf("\033[?25h")

 

//反显

#defineHIGHT_LIGHT() printf("\033[7m")

#defineUN_HIGHT_LIGHT() printf("\033[27m")

 

int main(intargc,char **argv)

{

printf("\033[31mThecolor,%s!\033[1m\n","haha");

printf("\033[31mThecolor,%s!\033[4m\n","haha");

printf("\033[31mThecolor,%s!\033[5m\n","haha");

printf("\033[31mThecolor,%s!\033[7m\n","haha");

printf("\033[31mThecolor,%s!\033[8m\n","haha");

printf("\033[31mThecolor,%s!\033[0m\n","haha");

printf("\033[47;31mThecolor,%s!\033[0m\n","haha");

printf("\033[47mThecolor,%s!\033[0m\n","haha");

sleep(2);

printf("\033[47m%s!\033[5A\n","up5");

sleep(2);

printf("\033[47m%s!\033[9B\n","down9");

sleep(2);

printf("\033[47m%s!\033[19C\n","right19");

printf("right19");

sleep(2);

printf("\033[47m%s!\033[10D\n","left10");

printf("left10");

sleep(2);

printf("\033[47m%s!\033[50;20H\n","moveto y:50,x 20");

printf("y50x 20");

sleep(2);

printf("\033[47m%s!\033[?25l\n","hidecursor");

sleep(2);

printf("\033[47m%s!\033[?25h\n","sowcursor");

sleep(2);

printf("\033[47m%s!\033[2J\n","clearscleen");

sleep(2);

 

return 0;

}

 

printf("\033[47;31mhelloworld\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[7m
反显
\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
显示光标这样, 在某些时候就可以实现动态的输出.


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[7m
反显
\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
显示光标
这样, 在某些时候就可以实现动态的输出.


十六进制
1b 5b 30 30 6d 1b 5b 30 30 6d ###### 1b 5b 30 30 6d 20
. [ 0 0 m . [ 0 0 m ###### . [ 0 0 m
其中###表示字符串。

.[00m.[00m
第一个.[00m表示颜色开始,第二个.[00m表示白色。
.[00m
表示颜色设置结束。
.[00m.[34m
第一个.[00m表示颜色开始,第二个.[34m表示蓝色。
.[00m
表示颜色设置结束。

.[00m.[00manaconda-ks.cfg.[00m .[01;34mDesktop.[00m .[00minstall.log.[00m.[01;34mpackages.[00m
manaconda-ks.cfg
install.log是白色,Desktoppackages是蓝色。
[ <parameters> m
设置显示属性. 同样的序列可以设置一个或多个属性.par 作用
0
所有属性重设为默认值
1
设置边框
2
设置亮度减半(用一种颜色模拟另一种颜色)
4
设置底纹(用一种颜色模拟另一种颜色)
(
用于模拟的颜色由using ESC ] ...设置)
5
设置闪烁
7
设置反转视频(reverse video)
10
重设选定映像,显示控制标记,
反转元素标记.
11
选择空映像,设置显示控制标记,
重设反转标记.
12
选择空映像,设置显示控制标记,
重设反转标记.(在完成映像表转
换之前反转标记引起每一字节的
高位反转.)
21
设置正常亮度( ECMA-48 不兼容)
22
设置正常亮度
24
关闭下划线
25
不闪烁
27
反转视频关闭
30
黑色前景
31
红色前景
32
绿色前景
33
棕色前景
34
蓝色前景
35
品红前景
36
孔雀蓝前景
37
白色前景
38
打开下划线,设置默认前景色
39
关闭下划线,设置默认前景色
40
黑色背景
41
红色背景
42
绿色背景
43
棕色背景
44
蓝色背景
45
品红背景
46
孔雀蓝背景
47
白色背景
49
设置默认背景色

下面的定义摘自:
http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO-12.html
,可见telnetunix的渊源很深。
local BLUE="\[\033[0;34m\]"
local LIGHT_GRAY="\[\033[0;37m\]"
local LIGHT_GREEN="\[\033[1;32m\]"
local LIGHT_BLUE="\[\033[1;34m\]"
local LIGHT_CYAN="\[\033[1;36m\]"
local YELLOW="\[\033[1;33m\]"
local WHITE="\[\033[1;37m\]"
local RED="\[\033[0;31m\]"
local NO_COLOUR="\[\033[0m\]"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值