1

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

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

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

4

1 回答 1

3

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

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


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

于 2013-10-09T14:09:45.363 回答