c - 彩色的 printf 语句

标签 c gcc printf

代码

char *pcs = "\e[1;34m%d\e[0m";
int main()
{
    printf(pcs,12313213);
    return 0;
}

输出

12313213 蓝色

我想printf 2 蓝色数字。像 --->

printf(pcs+pcs,12313213,999); //(does not work)

有人可以指导我吗。

最佳答案

声明 pcs+pcs 添加两个指针。结果是一个指向完全不相关的地方的指针,这几乎肯定会使您的程序崩溃。 做你想做的事情的正确方法是改变格式字符串以接受两个数字:

char *pcs = "\e[1;34m%d%d\e[0m";

或者将格式字符串做成一个宏并使用它两次:

#define pcs "\e[1;34m%d\e[0m"
printf(pcs pcs,12313213,999); 

请注意,两个宏实例化之间没有逗号。

关于c - 彩色的 printf 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21774314/

相关文章:

c - 为什么在将数字转换为无符号类型时会对其进行符号扩展?

c - 父子进程随机结束(linux,c,fork())

c - 即使重命名符号后全局变量的地址也不会改变

c++ - float 到整数的转换

bash - 尝试执行 'as' : execvp: No such file or directory 时出错

macos - 如何在 Mac OSX 上编译 RarCrack?

mysql - 是否有 MySQL 等同于 sprintf?

php - 转换为 sprintf() 查询

c - 在汇编代码中查找结构变量的值

c - "No rule to make target"尽管规则存在