2014-01-12 2 views
0

Я на самом деле пишу raytracer, и у меня есть функция, которая загружает .off. Я работаю с xcode, и у меня есть в той же папке мой .h .cpp и мой .off. это начало моей функции:Я не могу загрузить файл данных, всегда не удалось его открыть

void Mesh::loadOFF (const std::string & filename) { 
    clear(); 
    ifstream input (filename.c_str()); 
    if (!input) 
     throw Exception ("Failing opening the file."); 

И призвание:

Mesh sphereMesh; 
sphereMesh.loadOFF ("sphere.off"); 

Я не понимаю, что это всегда открытие неудачи, если мой .off и файлы находятся в одной папке. Может кто-нибудь мне помочь?

+0

Убедитесь, что рабочий каталог устанавливается в нужное место. Например, вы можете захотеть запустить код из командной строки: 'cd' в правильный каталог и запустить его с помощью'./Your-program-name-go-here'. –

+0

Является ли исполняемый файл, созданный в той же папке, что и ваши файлы 'h' и' cpp'? – woolstar

+0

Здравствуйте, спасибо за ответ, но у меня нет ./your-program-name-goes-здесь в папке – Ekica

ответ

0

Программы Xcode, по-видимому, построены в несколько странном месте. Кажется, что они, как правило, расположены в

~/Library/Developer/Xcode/DerivedData/<project-specific-directory>/Products/<config> 

То есть, вы можете cd в каталог, где ваш файл, а затем запустить

~/Library/Developer/Xcode/DerivedData/<project-specific-directory>/Products/Debug/<program> 

Кажется, общая рекомендация не зависеть от относительной каталогов при попытке открыть существующие файлы. Если вы хотите открыть файл с относительно текущего каталога, вы, вероятно, следует установить каталог соответственно, используя chdir() системный вызов в вас программе:

int main() { 
    chdir("/path-to-the-directory-with-your-file/"); 
    // ... 
}