Toh*_*iko 2 c++ std stringstream
我知道我无法复制a stringstream,但是我想知道是否可以复制它,以便可以使用相似的输出说明符创建两个字符串。
像这样
std::stringstream s1;
s1 << std::scientific << std::setprecision(4);
s1 << 0.01;
// Later on I want to create s2 given s1
std::stringstream s2;
// Copy formatting specifiers from s1 to s2, so that the effect is
// s2 << std::scientific << std::setprecision(4);
s2 << 0.02;
Run Code Online (Sandbox Code Playgroud)
我的原因是我正在编写一个接受字符串流的函数,并且我想在修改字符串流之前了解某些输出的宽度。
我已经看完了stringstream这里的大部分问题,但找不到这个特定案例的答案。
您可以copyfmt-复制格式信息。
s2.copyfmt(s1);
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用以下方法保存和还原标志:
std::ios_base::fmtflags f = s1.flags();
s2.flags(f);
Run Code Online (Sandbox Code Playgroud)