C++: как получить результаты fprintf в виде std::string без sprintf

Я использую № 3: библиотеку vsnprintf форматов строк Boost, но sprintf должен признать, что у меня basic-string никогда не было проблем с vsprintf различиями в спецификациях unix форматов.

Работает как шарм vsprintf для меня - а внешние зависимости basic-string могли бы быть и хуже (очень formats стабильная библиотека)

Отредактировано: добавлен unix пример использования boost::format formats вместо printf:

sprintf(buffer, "This is a string with some %s and %d numbers", "strings", 42);

было бы примерно vswprintf так с библиотекой boost::format:

string = boost::str(boost::format("This is a string with some %s and %d numbers") %"strings" %42);

Надеюсь, это snprintf поможет прояснить использование vsprintf boost::format

Я использовал formats boost::format в качестве basic-string замены sprintf / printf в basic-string 4 или 5 приложениях (запись formats отформатированных строк в unix файлы или пользовательский unix-utils вывод в файлы журналов) и unix никогда не имел проблем с unix различиями в форматах. Могут basic-string быть некоторые (более или vsprintf менее неясные) спецификаторы snprintf формата, которые отличаются, но cpp у меня никогда не было проблем.

Напротив, у vswprintf меня были некоторые спецификации c++ формата, которые я не мог snprintf сделать с потоками (насколько c++ я помню)

c++

unix

format

printf

stdstring

2022-09-02T16:48:33+00:00