我知道我无法复制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;
我的原因是我正在编写一个接受字符串流的函数,并且我想在修改字符串流之前知道某些输出的宽度。
我在这里浏览了 stringstream
上的大部分问题,但找不到这个具体案例的答案。
最佳答案
您可以copyfmt
- 复制格式信息。
s2.copyfmt(s1);
或者,您可以使用以下方式保存和恢复标志:
std::ios_base::fmtflags f = s1.flags();
s2.flags(f);
关于c++ - 创建字符串流拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58886061/