В C ++ с использованием std :: to_string (), как мне предварительно заполнить строку, преобразованную из целого числа?Я пытался использовать #include и std :: setfill ('0'), но это не сработало.вот простой тестовый код.
#include <iostream>
#include <string>
//#include <iomanip> // setw, setfill below doesn't work
int main()
{
int i;
for (i=0;i<20;i++){
std::cout << "without zero fill : " << std::to_string(i) << ", with zero fill : " << std::to_string(i) << std::endl;
//std::cout << std::setw(3) << std::setfill('0') << "without zero fill : " << std::to_string(i) << ", with zero fill : " << std::to_string(i) << std::endl; // doesn't work
}
}
То, что я хочу сделать, это чтобы некоторые числа были преобразованы в строку, но некоторые из них с нулевым заполнением, другие нет. (Я использую его для создания имени файла на самом деле.) Как следуетЯ делаю это?
(я не знаю, почему это не должно быть так просто, как в C с использованием спецификатора формата% 0d или% 04d.)
ADD: From Добавить ведущие нули в строку, без (s) printf , я нашел
int number = 42;
int leading = 3; //6 at max
std::to_string(number*0.000001).substr(8-leading); //="042"
Это работает для меня, но я бы предпочел более естественное решение, чем этот трюк, как метод.