【发布时间】:2017-09-29 08:19:56
【问题描述】:
这是一个学术问题。
sdt::mutex m;
typedef std::lock_guard<std::mutex> G;
void thread1(){
G g(m);
std::cout << std::setw(9);
std::cout << 3.14;
std::cout << std::endl;
}
void thread2(){
G g(m);
std::cout << std::setw(7);
std::cout << 3.14;
std::cout << std::endl;
}
我的问题是格式绑定到输出流,所以如果我想确定我产生的输出,我需要设置我的线程上发明的所有格式选项。明年哪个会起作用,或者不会起作用。
- 有什么方法可以在不手动设置所有内容的情况下将格式重置为默认值?
- 如果不是,有什么好的解决方法?
- 例如,我是否应该在我的线程本地创建并保留一个
std::ostringstream并将oss.str()写入std::cout?
- 例如,我是否应该在我的线程本地创建并保留一个
【问题讨论】:
-
c++的哪个标准?
-
@RichardHodges C++14
-
@Ron 这是一个很好的选择,先生!
标签: c++ multithreading c++14 stdout