无法在C ++中写入文件

Tho*_*eir 5 c++ writefile windows-7

我正在尝试最基本的事情....用C ++编写文件,但是文件未写入。我也没有任何错误。也许我缺少明显的东西……还是什么?

我以为我的代码有问题,但是我也尝试了一个在网上找到的示例,但仍然没有创建文件。

这是代码:

ofstream myfile;
myfile.open ("C:\\Users\\Thorgeir\\Documents\\test.txt");
myfile << "Writing this to a file.\n";
myfile.close();
Run Code Online (Sandbox Code Playgroud)

我也尝试过事先手动创建文件,但是根本没有更新。

我正在运行Windows 7 64位(如果与此有关)。就像完全禁止文件写入操作并且没有显示错误消息或异常一样。

Tim*_*ter 3

您需要以写入模式打开文件:

myfile.open ("C:\\Users\\Thorgeir\\Documents\\test.txt", ios::out);
Run Code Online (Sandbox Code Playgroud)

请务必查看第二个参数的其他选项。ios::binary例如,如果您正在编写二进制数据,则需要。

您还应该在打开流后检查它:

myfile.open(...
if (myfile.is_open())
    ...
Run Code Online (Sandbox Code Playgroud)

更新:

AraK 是对的,我忘记了 anofstream默认处于写入模式,所以这不是问题。

也许您根本没有对该目录的写入/创建权限?Win7默认很多目录具有“拒绝全部”的特殊权限。或者该文件可能已经存在并且是只读的?

  • @Tim 好点,但是 std::ios::out 是在 **ofstream** 的构造函数中默认设置的。 (3认同)