C++11 格式化字符串format
template <typename ...Args>
static std::string format_string(const char* format, Args... args) {
char buffer[BUFSIZ] = {0};
size_t newlen = snprintf(buffer, BUFSIZ, format, args...);
if (newlen > BUFSIZ)
{
std::vector<char> newbuffer(newlen + 1);
snprintf(newbuffer.data(), newlen, format, args...);
return std::string(newbuffer.data());
}
return buffer;
}
用法:
std::string text = format_string("%.0f%%", 12.0f);
std::cout << text << std::endl;