fstream的open()是否采用相对或绝对文件路径?下面是示例代码 -fstream open()中的相对路径Mac OS X不起作用
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
fstream myfile;
myfile.open("subd/example.txt");
if(myfile.is_open()) {
for(int i = 0; i < 10; i++) {
myfile << "Example data " << i << endl;
}
} else cout << "Unable to open " << endl;
myfile.close();
return 0;
}
我在MAC OS X环境下工作。该子目录已经存在。 .open()为这些情况中的每一个返回false。我也使用-std = C++ 11。我如何解决这个问题? 为“词表”目录的权限是:
输出始终是“无法打开”。 原帖(本帖标记为重复帖)的解决方案无法解决我的问题。
解决方案,因为没有低于完全的答复解决我的问题
使用ofstream的使用相对路径(相对于的 程序中的位置可执行即的argv [ 0])。 fstream似乎不会以相同的方式工作 。
它采取任何你给它的路径。以“/”开头的路径是绝对的,所有其他路径都是相对的(到当前工作目录)。 – molbdnilo
例2是假的。它是“子目录/ example.txt”。 其他人应该工作。您在其中一个涉及的目录中缺少+ r权限,或者您只是输入了错字。 – kamikaze
我已经添加了一个更清晰的例子。其他用户是否也需要写入权限? –