新手问题。如何在c ++中填充std::string
,然后将填充结果分配给变量?
我正在查看setfill
和setw
,但我看到的所有示例都会使用std::cout
输出结果。例如:
std::cout << std::left << std::setfill('0') << std::setw(12) << 123;
我想要的是:
auto padded {std::left << std::setfill('0') << std::setw(12) << 123};
是否有std函数来实现这一目标,还是我必须自己动手?
答案 0 :(得分:4)
您可以使用与{std :: cout相同的格式说明符ostringstream。
std::ostringstream ss;
ss << std::left << std::setfill('0') << std::setw(12) << 123;
然后
auto padded{ ss.str() };
答案 1 :(得分:2)
可以使用可用的字符串操作,例如insert:
#include <iostream>
#include <string>
int main()
{
std::string s = "123";
s.insert(0, 12 - s.length(), '0');
std::cout << s << std::endl;
return 0;
}
答案 2 :(得分:0)
一般情况下,您可以使用std::stringstream
并利用所有&#34;实用程序&#34;流但是&#34; export&#34;为std::string
。
std::stringstream aSs;
aSs << std::left << std::setfill('0') << std::setw(12) << 123;
aSs.str(); // <-- get as std::string