2014-01-12 45 views
0

我實際上正在寫一個光線跟蹤器,並且我有一個加載.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-goes-here'運行它。 –

+0

可執行文件是否與'h'和'cpp'文件在同一個文件夾中創建? – woolstar

+0

您好,非常感謝您的回覆,但是我沒有./your-program-name-goes-here文件夾中的部分 – 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/"); 
    // ... 
}