我正在练习在Windows 7上使用Visual Studio 2015编写递归函数。
我使用 cout
来跟踪我的代码进度,但它显示的结果太多,即使我停止程序,我也看不到初始结果......我只能看到中间的输出。
如何查看完整的程序输出?
问题是cmd.exe
(Windows commad 提示符)有一个固定大小的缓冲区来显示输出。如果程序写入大量输出,则只会显示最后 N 行,其中 N 是缓冲区大小。
您可以通过多种方式避免此问题:
- 写入
文件,而不是写入
std::cout
。您的所有输出都将捕获在文件中,您可以在您选择的文本编辑器中阅读该文件。将标准输出重定向到文件。按
my_prog.exe > output.log
运行程序,输出将被重定向到output.log
。通过管道将输出传输到
more
命令,一次显示一个屏幕:my_prog.exe | more
增加
cmd.exe
缓冲区大小。如果右键单击命令窗口的标题栏,则可以选择"属性"菜单选项。在"布局"选项卡中,你将看到一个名为"屏幕缓冲区大小"的部分。将"高度"更改为更大的值,您将能够捕获这么多行输出。请注意,这有点不可靠,因为您通常不知道在执行程序之前它将输出多少行。使用文件的其他方法之一通常是更好的解决方案。
请注意,这对您的C++程序来说并不是真正的问题。能够在标准输出流上产生大量输出是完全合理的。最好的解决方案是将输出重定向或管道到文件的解决方案。这些操作在大多数明智的平台(以及Windows)上都可用,并且完全可以执行您需要的操作,而无需更改程序以写入文件。
我不确定是否理解您的问题,也许您应该将输出写入文件而不是标准输出?然后你会看到所有的结果
从命令行运行应用程序并将输出重定向到文件:
yourapp.exe > yourapp.log