我积极参与C ++中的I / O操作(目前正在使用它来打印标题,表格,一些数据对齐),并且想知道它在开源项目或一般示例/ nippets中的正确/大用途
我使用的东西:
cout.setf(ios::right,ios::jyustified);
cout<<std::setw()
std::copy (vector.begin(), vector.end(), std::osteam_iterator<const Foo *>
std::cout,"\n"); //provided I have operator << in/for Foo
locale mylocale("");
cout.imbue( mylocale );
我不喜欢我当前的实现,因为我有很多强制(\t)
和spaces
来确保正确的缩进。因此,我想看看顶级专业人士如何使用I / O.
答案 0 :(得分:1)
如果您想以一种易于阅读的方式格式化数据,请考虑发出某种结构化文档格式(例如html或pdf),而不是纯文本加空格和制表符。这个问题不是特定于C ++ I / O的,并且通过巧妙地使用<stdio>
无法真正解决。
答案 1 :(得分:1)
有一件非常有用的事情是Boost IO state saver library。这提供了(特别是)处理“粘性”标志的简洁方法。
我倾向于同意David Seiler的观点 - 很少有人会对单个字体中的纯文本输出感到满意,等等只能通过编写文本来获得。但是,HTML很容易生成。但是,RAII可以很好地处理固定结构文档,以确保始终生成正确嵌套的标记。
答案 2 :(得分:1)
对于问题的缩进部分:“过滤器”的概念(例如,在Boost.IOStreams库中实现)在这方面非常有用和强大。有关示例,请参阅此answer。