Не удается открыть ресурс текстового файла в инструменте Xcode 4 c ++? - PullRequest
0 голосов
/ 07 сентября 2011

Я работаю над выяснением того, как использовать Xcode 4 для отладки проектов c ++.

Я в основном скопировал вставленный рабочий исполняемый файл c ++, который при компиляции из терминала работал нормально.

Однако я подумал, что было бы неплохо использовать Xcode для отладки. Поэтому я пытаюсь перенести один файл .cpp в Xcode в качестве инструмента командной строки.

Мне нужно прочитать файл с именем numbers.txt (который я предоставляю через аргумент командной строки), который находится в каталоге моего проекта, и затем поместить его в файл (имя которого я также указываю в качестве аргумента)

Проблема, с которой я сталкиваюсь, заключается в том, что файлы, предоставленные в качестве аргументов командной строки, не открываются.

    ifstream in;
    ofstream out;
    in.open(argv[1]);
    out.open(argv[2]);

Я проверил, чтобы убедиться, что аргументы передаются правильно и имеют правильные имена. ifstream in поставляется с `numbers.txt ', который я хочу открыть в текстовом файле, который у меня уже есть.

Однако, когда я проверяю, чтобы убедиться, что ifstream открыт:

    if(in.is_open() == false){
          cerr << "Unable to open input file" << endl;
          return 1;
    }

Я получаю ошибку.

Я подозреваю, что это как-то связано с тем, как Xcode организует проект.

мой numbers.txt файл просто находится в папке проекта Xcode, и у меня есть только один класс .cpp и один исполняемый файл.

Кто-нибудь знает, что мне здесь не хватает?

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Исполняемый файл, созданный Xcode, находится в другой папке, чем проект.Передача имени файла без абсолютного пути перед тем, как исполняемый файл будет искать его в неправильном месте, поэтому его нельзя найти.Некоторые из возможных решений - включить файл как часть процесса сборки (чтобы он оказался в том же каталоге, что и исполняемый файл) или передать открываемый файл по абсолютному пути.Есть и другие способы решения проблемы, но, надеюсь, этого будет достаточно, чтобы начать работу.

2 голосов
/ 26 ноября 2013

Старая тема, но я столкнулся с той же проблемой сейчас, и ее легко решить. Просто скопируйте файл на этапе сборки. Вот скриншот окончательного результата (обратите внимание на пункт назначения, подпуть и флажок):

copy item

...