无法创建.txt文件并以 C++ 格式写入该文件

Fail to create a .txt file and write to it in C++?

本文关键字:文件 格式 C++ 创建 txt      更新时间:2023-10-16

main()调用的一个函数中,我有以下非常简单的测试片段。

ofstream outFile;
outFile.open("C:\Program Files\data\test.txt");
outFile << "testn";
outFile.close();

运行代码后,我没有看到该文件出现。为什么会这样?

不幸的是,C++没有指定任何获取更详细错误的方法。请参阅获取 std::fstream 失败错误消息和/或异常。

但是特定于平台的界面应该可以工作。每次操作后,请检查是否outFile.bad(),如果为 true,请检查GetLastError() 。根据文档中的相应表格或使用FormatMessage进行解释。


我怀疑问题是权限。Windows Vista引入了这种"用户访问控制",每当程序想要执行需要管理员权限的操作时,即使当前用户具有管理员权限,也应该弹出一个对话框。问题是对话框仅在特定条件下弹出。值得注意的是,它不会为控制台应用程序弹出,并且应用程序会立即被拒绝权限。此类应用程序必须"以管理员身份"显式执行。当然,不要忘记能够在那里写入特定文件并不意味着能够创建一个新文件。