是否有良好的C ++ I / O使用示例

时间:2009-10-27 12:26:26

标签: c++ stl io

我积极参与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.

3 个答案:

答案 0 :(得分:1)

如果您想以一种易于阅读的方式格式化数据,请考虑发出某种结构化文档格式(例如html或pdf),而不是纯文本加空格和制表符。这个问题不是特定于C ++ I / O的,并且通过巧妙地使用<stdio>无法真正解决。

答案 1 :(得分:1)

有一件非常有用的事情是Boost IO state saver library。这提供了(特别是)处理“粘性”标志的简洁方法。

我倾向于同意David Seiler的观点 - 很少有人会对单个字体中的纯文本输出感到满意,等等只能通过编写文本来获得。但是,HTML很容易生成。但是,RAII可以很好地处理固定结构文档,以确保始终生成正确嵌套的标记。

答案 2 :(得分:1)

对于问题的缩进部分:“过滤器”的概念(例如,在Boost.IOStreams库中实现)在这方面非常有用和强大。有关示例,请参阅此answer