int main()
{
using namespace std;
stringstream inter;
string s = "12";
inter << setw(3) << setfill('0') << s;
inter >> s;
cout << s << endl;
return 0;
}
可以设置填充宽度、字符及位置。
如果经常用,不妨写个包装函数。
#include <iomanip>
#include <iostream>
template <typename T, typename S>
T fill_cast(const S& v, const int width, const char c)
{
T result;
std::stringstream inter;
inter << std::setw(width) << std::setfill(c) << v;
inter >> result;
return result;
}
int main()
{
std::string s = "12";
std::cout << fill_cast<std::string>(s, 3, '0') << std::endl;
return 0;
}