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
C++: как получить результаты fprintf в виде std::string без sprintf
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.