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
我已經添加了一個更清晰的例子。其他用戶是否也需要寫入權限? –