C函数用于格式化打印彩色文本

时间:2018-05-28 20:33:57

标签: c printf ansi

this question帮我打印不同的颜色。

Iam尝试创建一个始终以蓝色打印给定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?

谢谢

0 个答案:

没有答案