【问题标题】:ofstream outputs in debug but not runofstream 在调试中输出但未运行
【发布时间】:2013-07-01 13:50:16
【问题描述】:

我有一个非常简单的 C++ 程序和一个非常简单的项目设置,但是当我运行该程序时,我没有得到任何输出。如果我在调试模式下运行程序,它会完美运行。我在带有 MinGW 的 Windows 上使用 Eclipse Kepler CDT 32 位。我对日食有点陌生,所以这可能是我做错了。

程序是:

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

ofstream outfile("testdata.txt");

int main()
{
    outfile << "Program Start\n";
    cout << "Program Start\n";

    return 0;
}

救命!

【问题讨论】:

  • 您的意思是文件中或控制台中或两者都没有输出?
  • 控制台没有输出,也没有创建文件。
  • 更新:在 Eclipse 中仍然没有修复,但我尝试从 cmd 和 msys 运行它。从 cmd 我收到错误“程序无法启动,因为您的计算机缺少 libgcc_s_dw2-1.dll。”从 msys 它工作得很好。

标签: c++ eclipse debugging eclipse-cdt ofstream


【解决方案1】:

如果问题是程序在您在屏幕上看到输出之前快速打开然后关闭,那么您可以从任何 shell(Windows 上的 CMD、Linux 上的 bash 等)运行程序。这样,您的程序结束后它就不会退出并且您可以看到结果。

确保在程序退出之前刷新/关闭ofstream

【讨论】:

    【解决方案2】:

    问题不在于 c++ 本身。单击开始后,您应该检查是否通过“cmd”在“启动菜单”中键入它。找到程序的路径,然后运行它。

    一开始建议花几个小时使用终端(cmd)。要知道事情是如何运作的。之后您将独立 - 您将能够在任何 IDE 中编写代码。使其工作的另一个简单技巧是使用 std::cin.get() 。它优先于 system("pause")。

    【讨论】:

      【解决方案3】:

      您使用相对路径打开testdata.txt 文件。

      并且创建的文件可能是在项目二进制输出路径中创建的,可执行文件所在的位置。 您可以使用everything软件来检查文件是否创建以及创建路径。

      everything

      例如,您可以在everything软件中输入您的输出文件名testdata.txt,以查看输出文件的创建位置。并检查testdata.txt是否创建在错误的路径或目录中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-12
        • 2023-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多