使用宏来定义打印格式参数

时间:2018-05-09 16:47:55

标签: c++

我想定义格式%lld并使用简介printfsnprintf

#include "stdafx.h"
#include <cstdint>

using Custom_DataType = int64_t;
#define CUSTOM_FORMAT "%lld"

int main()
{
    Custom_DataType  var = 9999999999;
    printf("It works", CUSTOM_FORMAT, var);

    return 0;

}

我想做点什么

printf("It works %lld", var);

我想将%lld替换为CUSTOM_FORMAT 但是,如果我这样做,就像我上面的例子那样,

2 个答案:

答案 0 :(得分:3)

您可以使用字符串文字串联。由于

"STRING1" "STRING2"

相当于

"STRING1STRING2"

你可以写:

#define CUSTOM_FORMAT "%lld"
printf("It works " CUSTOM_FORMAT, var); // <-- no comma ;)

答案 1 :(得分:1)

printf("It works", CUSTOM_FORMAT, var);

这个逗号,毫无意义。摆脱它:

printf("It works " CUSTOM_FORMAT, var);

然后,再次,因为您使用C ++,为什么不使用std::cout