该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

只靠签到升级太慢了,第二次发帖。。。之前一直不知道咋用printf输出颜色,找了度娘就知道了。。大一快结束了,c语言也学了半学期了,要走的路还很长啊。。。这是给和我一样的新手看的,大神们一笑而过就好。。。

进入正题:cdroid是在安卓平台运行的,所以是linux下,可以这样输出颜色:

//小范例

# include

int main()

{

printf("\033[31m""hello world"); //这会输出红色的hello world,其他颜色请看下文

return 0;

}

关键部分的基本格式是:

printf("\033[字背景颜色;字体颜色m字符串\033[0m" );

printf("\033[47;31mhello world\033[5m");

47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码

字背景颜色范围: 40--49 字颜色: 30--39

40: 黑 30: 黑

41: 红 31: 红

42: 绿 32: 绿

43: 黄 33: 黄

44: 蓝 34: 蓝

45: 紫 35: 紫

46: 深绿 36: 深绿

47: 白色 37: 白色

其他的控制码:

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

在c4上就这样了。。。很简单,一看就会。。

至于在windos下用printf输出颜色上面的方法就不行了,"\033[31m"前面的会成转义字符。

简单提一下吧,来源于度娘:

一种:使用老古董“TC”或者"BC",

它有个头文件叫conio.h,然后就可以调用如textcolor、textbackground等函数了,

但是这个头文件在Windows系列中例如(VC6等),虽然也有这个头文件,但是

你若是打开看看的话,里面是不支持这些函数;

二种:使用所示的Windows支持的console终端函数:

#include "stdio.h"

#include "windows.h"

void set_console_color(unsigned short color_index)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color_index);

}

int main()

{

set_console_color(6);

printf("%s", "hello");

set_console_color(9);

printf("%s\n", " world");

return 0;

}

这段代码手机上应该运行不了。

还有其他的方法就不写了。。

希望和我一样的新手有所收获。。。。。

。。。。。。。。。。。。。路漫漫其修远兮,吾将上下而求索。

Logo

更多推荐