【问题标题】:How do I pipe output when debugging in Visual Studio 2008?在 Visual Studio 2008 中调试时如何管道输出?
【发布时间】:2009-01-03 22:44:25
【问题描述】:

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

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

【问题讨论】:

    标签: c++ visual-studio


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我的结果和你一样:重定向在 2008 年对我来说也不起作用,但在 2005 年起作用。正如@ChrisN 提到的,这是 VS 2008 的一个错误,它已在 VS 2008 SP1 中修复。

      要修复,您可以安装 VS2008 SP1 或使用此解决方法。

      解决方法如下:

      • 通过 freopen 重定向代码中的输出,this link explains how
      • 将此代码包装在#ifdef REDIRECT_OUTPUT_TO_FILE 和#endif 中
      • 转到 C/C++ 选项卡,然后是预处理器选项卡,并设置 REDIRECT_OUTPUT_TO_FILE

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-08
          • 1970-01-01
          • 1970-01-01
          • 2010-11-24
          • 1970-01-01
          相关资源
          最近更新 更多