版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u201011221/article/details/103296000
代码语言:javascript复制const char *fmt = "sqrt(2) = %f";
int sz = std::snprintf(nullptr, 0, fmt, std::sqrt(2));
std::vector<char> buf(sz 1); // note 1 for null terminator
std::snprintf(&buf[0], buf.size(), fmt, std::sqrt(2));
调用snprintf时,如果传入空指针和0大小的buf_size,返回值是格式化后结果的大小。这个是C 下的写法。
代码语言:javascript复制const char *fmt = "sqrt(2) = %f";
int sz = snprintf(NULL, 0, fmt, sqrt(2));
char buf[sz 1]; // note 1 for terminating null byte
snprintf(buf, sizeof buf, fmt, sqrt(2));