21xrx.com
2024-11-05 18:55:41 Tuesday
登录
文章检索 我的文章 写文章
C++设置输出颜色:让控制台输出更加醒目。
2023-06-27 18:55:24 深夜i     --     --
C++ 输出颜色 控制台 更加醒目 设置

C++是一种面向对象程序设计语言,广泛用于编写系统软件、应用软件、驱动程序和中间件等。在程序开发过程中,控制台输出是常见的交互方式之一。但是,输出的内容往往是黑白单调的,难以吸引用户的注意力,所以在开发过程中,我们需要设置输出颜色来让控制台输出更加醒目。

在C++中,可以通过调用Windows API的一些函数来设置控制台输出颜色,这些函数包括SetConsoleTextAttribute等。下面我们来大致了解下这些函数的使用方法。

1. SetConsoleTextAttribute函数:该函数可以设置控制台的输出文本和背景颜色,它的声明如下:

BOOL WINAPI SetConsoleTextAttribute(

 _In_ HANDLE hConsoleOutput,

 _In_ WORD  wAttributes

);

其中,hConsoleOutput是控制台句柄,wAttributes是文本和背景颜色的16进制值,可以通过以下方式设置:

0x0 黑色

0x1 蓝色

0x2 绿色

0x3 青色

0x4 红色

0x5 洋红色

0x6 黄色

0x7 白色

0x8 灰色

0x9 淡蓝色

0xA 淡绿色

0xB 淡青色

0xC 淡红色

0xD 淡洋红色

0xE 淡黄色

0xF 亮白色

例如,将文本设置成红色,背景设置成黄色,可以使用如下代码:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | BACKGROUND_YELLOW);

2. GetStdHandle函数:该函数可以获取当前进程的标准输出句柄,该句柄在C++中被定义为STD_OUTPUT_HANDLE。可以使用如下代码获取:

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

3. CONSOLE_SCREEN_BUFFER_INFO结构体:该结构体包含了当前控制台缓冲区的屏幕缓冲区信息,可以使用如下代码获取:

CONSOLE_SCREEN_BUFFER_INFO info;

GetConsoleScreenBufferInfo(hConsole, &info);

通过获取到的屏幕缓冲区信息,可以获取当前控制台的宽度和高度,以及当前光标的位置。例如,获取当前光标的x坐标和y坐标可以使用:

int x = info.dwCursorPosition.X;

int y = info.dwCursorPosition.Y;

最后,通过使用上述函数和结构体,我们可以实现自定义控制台输出颜色的功能,使得控制台输出更加醒目,提高用户的用户体验。

  
  
下一篇:

评论区

{{item['qq_nickname']}}
()
回复
回复