C语言输出框背景及文字颜色

这篇博客介绍了如何在C语言中使用`system("color *")`命令改变控制台的背景和文字颜色。通过指定不同的十六进制数字,可以设置各种颜色组合。例如,颜色属性由两个数字组成,分别代表背景和前景色,如0-7对应黑色到白色,A-F对应淡色。如果尝试设置相同的前景和背景颜色,将会返回错误。

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

#include <stdio.h>

#include <stdlib.h>

int main ()

{

system("color *");

printf("wa wa wa");

system("pause");

return 0;

}

C:\Users\86181>color/?

设置默认的控制台前景和背景颜色。

COLOR [attr]

  attr        指定控制台输出的颜色属性。

### C语言控制台输出文字颜色设置方法 在C语言中,可以通过调用Windows API来更改控制台中的文字颜色。以下是几种常见的实现方式: #### 使用 `SetConsoleTextAttribute` 函数 通过 `windows.h` 头文件提供的 `SetConsoleTextAttribute` 函数可以灵活地调整控制台文字颜色背景色。 ```c #include <stdio.h> #include <windows.h> int main() { // 获取标准输出句柄 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // 设置红底白字 SetConsoleTextAttribute(hConsole, 0xC7); puts("Hello, World!"); // 将文字设置为红色 SetConsoleTextAttribute(hConsole, 0xC); puts("将文字设置为红色"); // 将文字设置为白色 SetConsoleTextAttribute(hConsole, 0xF); puts("将文字设置为白色"); system("pause"); return 0; } ``` 此代码展示了如何使用不同的属性值[^1] 来改变文字颜色背景色。 --- #### 自定义函数实现局部颜色变化 如果需要更方便地切换不同颜色,可以封装一个自定义函数 `color(x)`,其中参数 `x` 表示颜色编码(范围为0-15)。以下是一个例子: ```c #include <stdio.h> #include <windows.h> void color(short x) { if (x >= 0 && x <= 15) { // 参数在0-15范围内有效 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); } else { // 默认颜色为白色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); } } int main() { color(6); // 黄色 printf("\n这是黄色\n"); color(4); // 红色 printf("\n这是红色\n"); return 0; } ``` 该方法允许动态调整局部区域的文字颜色[^2]。 --- #### 利用 `system()` 命令快速更改全局颜色 对于简单的场景,可以直接利用 `system()` 调用命令行工具 `color` 更改整个控制台的前景色和背景色。例如: ```c #include <stdlib.h> #include <stdio.h> int main(void) { int ret; // 修改控制台颜色为绿色前景、蓝色背景 ret = system("color 24"); if (ret == 0) { printf("Changed console color is ok.\n"); } else { printf("Error!!!\n"); } return 0; } ``` 注意:这种方法仅适用于 Windows 平台,并且会覆盖当前窗口的整体配色方案[^3]。 --- ### 总结 以上三种方法各有优劣: - **第一种**适合精确控制每一段文字颜色; - **第二种**便于多次重复调用同一功能; - **第三种**则用于简单场合下的整体风格设定。 开发者应根据实际需求选择合适的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值