В стандарте C++20 это скорее всего можно решить фичами пришедшими из библиотеки fmt. А что изящнее будет выглядеть на C++11?
Суть вопроса следующая. Есть std::string строка. К ней в цикле нужно присоединить целый номер в 4 позиции, пустые заполняются нулями. Например, i = 23, «test0023». Не вывести, а получить переменную std::string.
Первое что гуглится - использование «oimanip» + «stringstream», с использованием временной переменной std::stringstream, в которую пишется значение «0023» с помощью setw и fill, и конвертацией её в std::string. В начале цикла разве что её ещё опустошать нужно, иначе следующим шагом поистыковываться будет «00230024».
Есть ещё способы из стандартной библиотеки для <C++20, но без оперирования нуль-терминированными строками в явном виде?
Перемещено leave из talks