2

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

#include <fstream>
using namespace std;

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

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

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

4

4 回答 4

4

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

在此处输入图像描述

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

于 2012-11-22T15:03:31.967 回答
1

以下代码对我来说很好:

#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

于 2012-11-22T15:01:12.523 回答
-1

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

于 2016-06-01T08:06:54.797 回答
-2

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

于 2014-11-01T14:51:13.917 回答