Я знаю, что это похоже на простой вопрос, но я испробовал все, что я мог придумать, чтобы не иметь ничего общего с чем-то, что не должно было быть проблемой в первую очередь.Не удается открыть файл с относительным путем? (C++ ifstream)
Это небольшая программа на C++, которая открывает файл. Когда я открываю его с его абсолютным файловым путем, он отлично работает. Однако с относительным путем он перестает работать.
Вот путь к файлу программы и файлы я пытаюсь прочитать:
C++ программе:"/Users/Baggio/C++/Lab0/Lab0/Lab0/main.cpp"
Files:/Users/Baggio/C++/Lab0/Lab0/Lab0/result.txt
, /Users/Baggio/C++/Lab0/Lab0/Lab0/dict.txt
Вот код фрагмент:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, const char * argv[]) {
// string dict_filename = "/Users/Baggio/C++/Lab0/Lab0/Lab0/dict.txt";
// string result_filename = "/Users/Baggio/C++/Lab0/Lab0/Lab0/result.txt";
string dict_filename_string = "dict.txt";
string result_filename_string = "result.txt";
const char* dict_filename = dict_filename_string.c_str();
const char* result_filename = result_filename_string.c_str();
// open files
ifstream dict_file(dict_filename, ifstream::in);
ifstream result_file(result_filename, ifstream::in);
if (!dict_file || !result_file) {
cerr << "File could not be opened." << endl;
exit(1);
}
}
Результат выполнения
File could not be opened.
Я уверен, что я сделал все включает правильные и типы данных, право на аргументы ifstream конструктора. Единственное, о чем я могу думать, стоит упомянуть о системе, в которой я включен: Я нахожусь на Mac, и я использую XCode6 в качестве моей IDE.
Кроме того, я пытался переместить местоположение файлы (results.txt и dict.txt) в этих местах без толку:
/Users/Baggio/C++/Lab0/Lab0/Lab0/
/Users/Baggio/C++/Lab0/Lab0/
/Users/Baggio/C++/Lab0/
/Users/Baggio/C++/
Спасибо за вашу помощь, ребята !! Любые предложения или мысли оценены.
Да, это так! Typo bad error ... -__- " –
Я бы добавил тег xcode, так как я думаю, что может быть проблема: путь, в котором выполняется программа, может не совпадать с местоположением исходного файла. строка пути к файлу будет похожа на «./dict.txt». – Dronz
Yup добавил - я также пробовал это, но это не сработало. –