如何在Visual Studio 2008调试时进行输出重定向?

3
我尝试进入项目属性,在配置属性下选择调试,并将命令参数设置为“> out.txt”(不包括引号)。然而,当我运行程序(按F5键)时,仍然会在控制台上看到输出,并且没有创建out.txt文件。这只是一个简单的C++ Hello World程序。这些步骤对我的朋友有效,但对我无效(他也在使用VS2008)。我听说过禁用托管进程,但似乎那只适用于Visual Studio 2005。
看起来“> out.txt”被传递为一个参数。argc为3,argv[1]为“>”,argv[2]为“out.txt”。这不应该发生吗?我该怎么办才能解决这个问题?
3个回答

4
根据 Microsoft Connect 网站上的 这个错误报告,这个问题已经在 Visual Studio 2008 Service Pack 1 中得到解决。我正在我的系统上运行 VS2008 SP1,并且输出重定向对我来说正常工作。您可以在此处下载 SP1。

1

我和你一样的结果:重定向在2008年对我也不起作用,但在2005年可以。正如@ChrisN所提到的,这是VS 2008的一个错误,并且已经在VS 2008 SP1中得到了修复。

要解决这个问题,您可以安装VS2008 SP1或使用此解决方法。

以下是解决方法:

  • 通过freopen在代码中重定向输出,此链接解释了如何操作
  • 将此代码包装在#ifdef REDIRECT_OUTPUT_TO_FILE和#endif之间
  • 转到C/C++选项卡,然后预处理器选项卡,并设置REDIRECT_OUTPUT_TO_FILE

0

在我的vs 2005中完美运行。也许检查main()的参数,看看是否将"> out.txt"作为参数传入,而不是在cmd.exe级别进行评估。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接