printf打印设置字体和背景带颜色的输出方法

本文介绍如何在日志中使用颜色代码和ANSI控制码进行格式化,包括设置字体颜色、背景颜色、高亮度等,以提高日志可读性和错误信息的辨识度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       为了方便调试,难免会加一些log信息,当有大量log时,去翻阅很难一眼看出错误信息,这时就可以对log设置某些颜色或者高亮度等等。

具体格式如下:

  

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

 

例子:

printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");

 

 

颜色代码: 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   设置高亮度      

   \033[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行

### C语言 `printf` 修改输出文本大小颜色方法 #### 使用 ANSI 转义序列修改文本颜色 在 Linux 或 Mac 终端中,可以通过发送特定的 ANSI 控制序列来改变终端上打印的文颜色。这些控制序列允许设置前景色(文颜色)、背景色以及一些显示属性如加粗或下划线。 对于文颜色,在调用 `printf` 函数时可以嵌入如下格式的符串: ```c "\033[<attr>m" ``` 其中 `<attr>` 是由多个参数组成的列表,各参数之间用分号隔开;最后一个 'm' 表示结束标记。例如,要将文本设为红色,可以用 `\033[31m`[^4]。 下面是几个常用的色彩代码及其含义: | 属性 | 值 | | --- | --- | | 黑色 | 30 | | 红色 | 31 | | 绿色 | 32 | | 黄色 | 33 | | 蓝色 | 34 | | 紫色 | 35 | | 青色 | 36 | | 白色 | 37 | 为了恢复默认样式,可以在适当位置加入重置命令 `\033[0m` 来清除之前所有的格式化效果[^5]。 #### 示例代码展示不同颜色输出 这里给出一段简单的例子,演示如何利用上述提到的技术实现彩色输出: ```c #include <stdio.h> int main() { // 打印黑底的信息 printf("\033[31m这是红色字体\033[0m\n"); // 更改背景色的例子 (使用大于等于10的数值作为背景色) printf("\033[44;37m白色文蓝色背景\033[0m\n"); return 0; } ``` 需要注意的是,这种方法仅适用于支持 ANSI 转义序列的环境,比如大多数现代 Unix/Linux macOS 终端模拟器。而在 Windows 平台上,默认情况下可能不完全兼容此特性,除非启用了相应的功能或是通过第三方工具提供支持。 关于调整文本的实际尺寸,这并不是直接由 `printf` 自身完成的功能,因为标准 C 库并没有内置机制去影响屏幕上的物理呈现形式——即无法单纯依靠 `printf` 来增大缩小字体本身。不过,如果是在图形界面应用程序内工作,则可以根据具体框架提供的 API 进行相应处理;而对于纯文本模式下的终端应用来说,一般只能借助外部库或者操作系统特有的接口来进行更复杂的渲染操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值