C ++输出到控制台和文件?

时间:2014-04-18 04:57:24

标签: c++ console-application

我有一个用C ++编写的程序,我正在尝试调试。

当我编写程序的前几个版本时,我将几个cout语句打印到控制台,以便我可以调试。现在,我的程序已经发展到数千行,有几百个cout语句。我有一个罕见的错误只有在我运行程序几千次才会发生,所以即使我的控制台屏幕缓冲区是9999,我仍然没有看到我的所有调试输出。

我知道我可以创建一个文件流并编写一些代码输出到每个cout语句下的文件,但由于我有很多cout语句,所以我需要一段时间来完成这个。

我是C ++的新手,所以我想在编辑所有源代码之前看看是否有人知道更快的替代方案。感谢。

编辑:我在Windows上运行该程序。

1 个答案:

答案 0 :(得分:0)

我不建议仅为此更改源。在Linux(或Cygwin)环境中,只需将输出传递给tee。如果您没有tee可供使用,则需要大约20分钟才能完成。

修改的: tee的核心是

FILE * file = fopen("outfilename", "wb");
char buffer[BUFFER_SIZE];
while(fgets(buffer, BUFFER_SIZE, stdin)) {
    fputs(buffer, stdout);
    fputs(buffer, file);
}