在 main()
调用的我的一个函数中,我有以下非常简单的测试片段。
ofstream outFile;
outFile.open("C:\\Program Files\\data\\test.txt");
outFile << "test\n";
outFile.close();
运行代码后,我没有看到文件出现。为什么会这样?
最佳答案
不幸的是,C++ 没有指定任何获取更详细错误的方法。参见 Get std::fstream failure error messages and/or exceptions .
但是特定于平台的界面应该可以工作。每次操作后检查是否 outFile.bad()
如果为真,检查 GetLastError()
.根据文档中的适当表格或使用 FormatMessage
进行解释.
我怀疑是权限问题。 Windows Vista 引入了这种“用户访问控制”,只要程序想要执行需要管理员权限的操作,即使当前用户拥有管理员权限,它也会弹出一个对话框。问题是对话框只在特定条件下弹出。值得注意的是,它不会针对控制台应用程序弹出,并且应用程序的权限会立即被拒绝。此类应用程序必须以“管理员身份”明确执行。当然不要忘记能够在那里写入特定文件并不意味着能够创建一个新文件。
关于c++ - 无法创建 .txt 文件并用 C++ 写入它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274044/