代码之家  ›  专栏  ›  技术社区  ›  Steven

如何在Visual Studio 2008中调试时管道输出?

  •  3
  • Steven  · 技术社区  · 17 年前

    我试图转到项目属性,在配置属性下选择调试,并将命令参数设置为“>out.txt”(当然不带引号)。但是,当我运行程序(使用F5)时,我仍然在控制台上看到输出,并且没有创建out.txt文件。这只是一个简单的C++ Hello World程序。这些步骤对我的朋友有效,但对我无效(他也在使用VS2008)。我听说过禁用托管进程,但这似乎只是针对Visual Studio 2005。

    似乎“>out.txt”正在作为参数传入。argc是3,argv[1]是“>”,argv[2]是“out.txt”。这不应该发生吗?我能做什么来修理它?

    3 回复  |  直到 17 年前
        1
  •  4
  •   ChrisN    17 年前

    根据 this bug report 在Microsoft Connect网站上,此问题已在Visual Studio 2008 Service Pack 1中修复。我正在我的系统上运行VS2008 SP1,输出重定向对我来说工作正常。你可以下载SP1 here .

        2
  •  1
  •   Brian R. Bondy    17 年前

    我的结果和你一样:重定向在2008年对我也不起作用,但在2005年起作用。正如@chris所提到的,这是VS 2008的一个bug,它在VS 2008 SP1中被修复了。

    要修复此问题,可以安装VS2008 SP1或使用此解决方案。

    以下是解决方法:

    • 通过freopen重定向代码中的输出, this link explains how
    • 将此代码包装到ifdef REDIRECT OUTPUT文件和endif中
    • 转到C/C++选项卡,然后预处理器选项卡,并设置ReRealtTyOutPuthtoToI文件
        3
  •  0
  •   driAn    17 年前

    在2005年对战中对我来说是完美的。也许检查main()中的参数,看看“>out.txt”是否作为参数传入,而不是在cmd.exe级别进行计算