它的目标之一是提供 printf 的替代品,这意味着 format 可以解析为 printf 设计的格式字符串,将其应用于给定的参数,并产生与 printf 相同的结果。
当我使用相同的格式字符串比较 boost:format 和 printf 的输出时,我得到不同的输出。在线示例在这里
#include <iostream>
#include <boost/format.hpp>
int main()
{
boost::format f("BoostFormat:%d:%X:%c:%d");
unsigned char cr =65; //'A'
int cr2i = int(cr);
f % cr % cr % cr % cr2i;
std::cout << f << std::endl;
printf("Printf:%d:%X:%c:%d",cr,cr,cr,cr2i);
}
输出是:
升压格式: A:A:A:65
打印:65:41:A:65
不同之处在于我想将 char 显示为整数类型。
为什么有区别?这是一个错误还是想要的行为?