Открывает ли fstream() относительные или абсолютные пути к файлу? Вот пример кода -Относительный путь в 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. Как мне обойти эту проблему? Разрешения для «» SUBD каталога являются:
Выход всегда «Невозможно открыть». Решение оригинального сообщения (одно сообщение, отмеченное дубликатом) не решает мою проблему.
решение, потому что ни один из ответов ниже полностью не решить мою проблему
Используйте ofstream с относительным путем (по отношению к месту исполняемыми то есть. ARGV [ 0]). fstream, похоже, не работает таким же образом.
Он принимает любой путь, который вы ему даете. Путь, начинающийся с «/», является абсолютным, все остальные пути относительны (к текущему рабочему каталогу). – molbdnilo
Пример 2 является фиктивным. Это «subdirectory/example.txt». Остальные должны работать. У вас либо отсутствует разрешение + r в одном из задействованных каталогов, либо вы просто сделали опечатку. – kamikaze
Я добавил более ясный пример. Нужны ли другим пользователям также доступ на запись? –