C/C++ 中怎样使用SetConsoleTextAttribute()函数来控制输出字符的颜色

当在控制台程序中使用C/C++语言输出字符时,通过SetConsoleTextAttribute()函数可以改变输出字符的颜色。该函数在Windows头文件中定义。下面给出SetConsoleTextAttribute()函数的用法及示例代码。

语法

BOOL SetConsoleTextAttribute(
  HANDLE hConsoleOutput,
  WORD   wAttributes
);

参数说明

  • hConsoleOutput:函数所要操作的控制台输出缓冲区的句柄,通常为标准输出句柄,即GetStdHandle(STD_OUTPUT_HANDLE)。

  • wAttributes:字符属性的引用。高亮显示、背景色、字体颜色、加粗、倾斜等均可通过改变该值来实现。

高亮显示

以下代码实现了高亮显示。

#include <windows.h>    //windows头文件
#include <iostream>     //cout所在头文件

using namespace std;

int main()
{
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);    
    SetConsoleTextAttribute(hConsole, 
        BACKGROUND_RED | FOREGROUND_INTENSITY);//高亮显示

    cout << "This is a test." << endl;

    return 0;
}

在输出"That is a test."之前,我们使用GetStdHandle()函数取得标准输出句柄,随后使用SetConsoleTextAttribute()函数改变字符属性为高亮。

背景色

以下代码展示了如何改变字符的背景色。

#include <windows.h>    //windows头文件
#include <iostream>    //cout所在头文件

using namespace std;

int main()
{
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, 
        BACKGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);//黄色背景+白色前景

    cout << "This is a test." << endl;

    return 0;
}

在输出"That is a test."之前,我们使用GetStdHandle()函数取得标准输出句柄,随后使用SetConsoleTextAttribute()函数改变字符属性为黄色背景和白色前景。

总结

以上就是使用SetConsoleTextAttribute()函数改变字符颜色的攻略,读者可以通过修改wAttributes的值来自定义想要的颜色和效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++ 中怎样使用SetConsoleTextAttribute()函数来控制输出字符的颜色 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • @Async异步线程池以及线程的命名方式

    下面我将为您详细讲解“@Async异步线程池以及线程的命名方式”的攻略。 什么是@Async异步线程池 在Spring中,使用@Async注解来使用异步线程。@Async用于在方法执行时,将方法内的操作放在异步线程中执行,以达到并发执行的效果。在异步方法中,可以使用Future类型来获取异步方法返回的结果。 Spring的@Async注解默认使用的是Simp…

    C 2023年5月23日
    00
  • C语言局部数据指针

    当我们在写C语言程序时,经常会定义一些变量,这些变量可以是全局变量,也可以是局部变量。而局部变量是指定义在函数内部或代码块内部的变量,这些变量的作用域仅限于定义它们的函数或代码块内部。那么在定义局部变量时,我们可以定义一个指针变量,它可以指向局部变量的地址。这就是C语言局部数据指针的使用方法。 如下是C语言局部数据指针的使用攻略: 1. 定义局部变量和指针变…

    C 2023年5月9日
    00
  • 关于C++11的统一初始化语法示例详解

    下面是关于”C++11的统一初始化语法示例详解”的攻略: 什么是C++11的统一初始化语法? C++11的统一初始化语法是一种新的初始化对象的语法,它可以用大括号“{}”来初始化各种类型的对象,包括基本类型、数组、结构体等。与传统的初始化语法相比,它更加方便、简洁,并且可以避免一些潜在的问题。 如何使用C++11的统一初始化语法? 使用C++11的统一初始化…

    C 2023年5月22日
    00
  • python 中if else 语句的作用及示例代码

    当我们需要根据某个条件来执行不同的代码,就需要使用到if else语句。if else语句在Python中非常常见且非常重要,其基本结构如下: if 条件: # 条件成立时要执行的代码块 else: # 条件不成立时要执行的代码块 其中,条件可为任何可以转换成布尔值True或者False的表达式,如比较运算符(>、<、==、!=等)、逻辑运算符(…

    C 2023年5月22日
    00
  • C语言 strncmp()函数

    当我们需要比较两个字符串时,可以使用C语言中的strncmp()函数。以下是有关此函数的完整使用攻略: 函数介绍 strncmp()函数用于比较两个字符串的前n个字符。此函数返回值是一个int类型,0表示两个字符串相等,1表示第一个字符串大于第二个字符串,-1表示第二个字符串大于第一个字符串。 函数语法 strncmp(const char str1, co…

    C 2023年5月9日
    00
  • C语言实现房屋管理系统

    C语言实现房屋管理系统攻略 1. 确定系统功能和数据结构 在实现房屋管理系统之前,需要确定系统需要实现的功能和数据结构。根据题目要求,系统需要实现以下功能: 用户登录/注册 添加房屋信息 修改房屋信息 删除房屋信息 查询房屋信息 而数据结构则需要存储房屋信息,包括: 房屋编号 房屋地址 房屋主人 房屋价格 是否出售/出租 因此,我们可以使用结构体来存储房屋信…

    C 2023年5月23日
    00
  • C语言实现图形化打砖块游戏

    下面是详细讲解“C语言实现图形化打砖块游戏”的完整攻略。 1. 准备工作 在开始编写代码之前,需要先安装一些必要的工具和库,包括:- Code::Blocks软件(用来编写C语言程序、调试和编译)- Simple DirectMedia Layer(SDL)库(用来处理图形图像、事件和音效等)- SDL_image库(用来加载和处理各种图像格式)- SDL_…

    C 2023年5月23日
    00
  • c语言实现一个简单日历

    C语言实现一个简单日历 本文将介绍如何使用C语言实现一个简单的日历程序。该程序可按照指定的年份和月份输出相应的日历。 程序设计思路 程序需要输入年份和月份,然后输出相应的日历。要实现这个功能,需要完成以下几个步骤: 1.根据输入的年份,计算出这一年是否为闰年及天数。 2.根据输入的月份,计算出该月的天数。 3.计算该月的第一天是星期几,以便正确地排版。 4.…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部