works:programmer:cpp:fast-format-string
Форматирование строки в C++ и возврат как std::string
Нашел на просторах Хабара (ссылка), оставил тут что-бы не потерять..
#include <iostream> #include <string> #include <vector> std::string format(const char *fmt, ...) { va_list args; va_start(args, fmt); std::vector<char> v(1024); while (true) { va_list args2; va_copy(args2, args); int res = vsnprintf(v.data(), v.size(), fmt, args2); if ((res >= 0) && (res < static_cast<int>(v.size()))) { va_end(args); va_end(args2); return std::string(v.data()); } size_t size; if (res < 0) size = v.size() * 2; else size = static_cast<size_t>(res) + 1; v.clear(); v.resize(size); va_end(args2); } }
works/programmer/cpp/fast-format-string.txt · Последнее изменение: 2019/04/27 17:05 — 127.0.0.1