【问题标题】:Creating output file in C++ Visual Studio 2010在 C++ Visual Studio 2010 中创建输出文件
【发布时间】:2012-11-10 23:51:29
【问题描述】:

我有一个最初用 g++ 编译的 C++ 项目。现在,我试图让它在 Visual Studio 2010 中工作,问题是创建空输出文件的常规命令:

#include <fstream>
using namespace std;

ofstream fout("afile.txt");
fout<<"write someting"<<endl;
fout.close();

在 VS2010 中不起作用(不创建文件)。即使文件已经存在,也没有任何内容。

那么,任何想法在 VS2010 中打开文件以从 C++ 写入的正确方法是什么?

【问题讨论】:

  • 我不得不问,但你确定你在寻找正确的目录吗?您如何在调试器中运行应用程序 - 您是否指定了工作目录?
  • 绝对有效 - 创建一个包含“write someting”的文件我刚刚编译并运行以防万一......
  • 您的代码是正确的。你没有找对地方,或者你试图在你没有权限写的地方写。
  • 我在项目目录下到处查看,仍然无法归档任何生成的文件。
  • 你可以先试试像“D:\\afile.txt”这样的完整路径,看看是不是找错地方了。

标签: c++ visual-studio-2010 file output


【解决方案1】:

手动将 afile.txt 添加到与您的源文件相同的位置,然后运行您的程序。文本将被写入文件。但请确保在运行程序时没有打开 afile.txt 文件

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,让我困惑了几分钟。检查您的项目目录。我打赌你会在那里找到你的文件。如果没有,那么您需要为调试或发布模式指定一个工作目录。在 MS Visual Studio 中,您可以通过单击“项目”菜单上的“属性”然后在“配置”属性中指定“工作目录”字段中的“调试”选项卡来执行此操作,您希望从中启动项目的目录。

    【讨论】:

      【解决方案3】:

      我怀疑该文件是在您预期之外的地方创建的 - 检查工作目录指向的位置。这是2012年的,但如果不一样就很相似了……在vs2010中右键项目,选择属性,然后选择调试,查看工作目录:

      或者,构建它,并将应用程序复制到您创建的目录 - 然后在命令行上运行它以检查它是否存在权限问题。

      【讨论】:

        【解决方案4】:

        以下代码对我来说效果很好:

        #include <fstream>
        using namespace std;
        
        int main(){
            ofstream fout("afile.txt");
            fout << "write someting"<<endl;
            fout.close();
            return 0;
        }
        

        您没有使用 main 方法(奇怪的是它没有给出任何语法错误)。 确保当您创建这样的项目时,它是一个 ConsoleApplication 并且它是一个空项目(您可以在 Win32 应用程序向导(用于创建项目的向导)中的“附加选项”下选中此选项。

        标准 C++ 应该在 Visual Studio 中工作。如果您想确保只使用标准 C++ 代码,您始终可以使用 /Za 编译器选项(请参阅 http://msdn.microsoft.com/en-us/library/0k0w269d.aspx

        【讨论】:

        • OP 说它以前使用 g++ 工作过。我认为他过于简化了。
        猜你喜欢
        • 1970-01-01
        • 2012-08-10
        • 2012-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多