C函数打印带格式的彩色文本[重复]

问题描述 投票:0回答:0

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

我正在尝试创建一个函数,它总是以蓝色打印给定的

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?

谢谢

c printf ansi-escape
© www.soinside.com 2019 - 2024. All rights reserved.