首页 > 解决方案 > C函数打印带格式的彩色文本

问题描述

这个问题帮助我用不同的颜色打印。

我正在尝试创建一个始终char*以蓝色打印给定的函数。我到目前为止:

#define KBLU  "\x1B[34m"
#define KWHT  "\x1B[37m"

void infoPrint(char* msg, ...)
{
    printf("%s", KBLU);
    printf(msg);
    printf("%s", KWHT);
}

当我调用函数时:

int value = 42;
infoPrint("Show value: %d.\n", value);

我得到以下蓝色输出:

Show value: 0.

由于任何原因,该值42未正确传递。

如果我将功能更改void infoPrint(char* msg, ...)为:

void infoPrint(char* msg, ...)
{
    printf(msg);
}

我正在获取输出(显然是标准终端颜色):

Show value: 42.

值 42 会发生什么变化?如果我在打印实际消息之前尝试以蓝色打印,为什么它是 0?

谢谢

标签: cprintfansi

解决方案


推荐阅读