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