【问题标题】:How to monitor streams in c++如何在 C++ 中监控流
【发布时间】:2011-05-12 22:54:15
【问题描述】:

通常在用 c++ 编写文件编写器或解析器时,我想在文件被写入/读取时监控写入器/解析器的进度。为此,我正在考虑实施类似的东西:

ostream_monitor my_monitor(&my_output_stream, &cout);
my_monitor << my_variable;

这会产生将 my_variable 输出到 my_output_stream 和 cout 的效果,所以我可以看到它。

同样,最好有一个相同的输入版本:

istream_monitor my_monitor(&my_input_stream, &cout);
my_monitor >> my_variable;

这将从 my_input_stream 中读取下一个标记,并使用它来设置 my_variable,但还将任何读取的字符输出到 cout,因此我可以在读取流时看到它。

我可以继续尝试创建 std::istream 和 std::ostream 的子类来执行此操作,但对于可能有用也可能没有用的调试工具来说,这似乎可能需要大量工程。因此,我被提示问:

您如何通过文件监控解析器的进度?我有兴趣听到任何似乎比上述更易于实施的解决方案。

【问题讨论】:

    标签: c++ debugging parsing stream iostream


    【解决方案1】:

    似乎 boost.IOStreams 的 tee_device 和可能的 tee_filter 可以用来快速实现我上面描述的内容:How can I compose output streams, so output goes multiple places at once?

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 2018-07-05
      • 2016-12-18
      • 2012-03-11
      • 1970-01-01
      相关资源
      最近更新 更多