2011-08-16 48 views
2

首先讀取從C++程序文件,這是我的代碼部分:不能在Mac

.... 
string input; 
getline(cin, input); 

ifstream openFile; 
openFile.open(input.c_str(), ios::in); 

if(openFile.is_open()){ 
    cout << "File opened" << endl; 
} 
else { 
    cout << "Cant open the file " << endl; 
} 

結果總是「無法打開文件」。我非常確信這些文件是存在的。我在同一目錄下有data1.txt,data2.txt ... data10.txt(我用XCode添加新的空文件,添加數據並保存)。

我做另外一個測試,我創建了一個新的目錄,複製粘貼CPP和數據文件。我運行在終端,它工作,它可以讀取數據文件。爲什麼xcode不能讀取我的數據文件?任何想法?

+1

這是關於iOS或Mac的發展? 「輸入」的確切內容是什麼?如果它是一個相對路徑,你的進程是否在正確的工作目錄? – DarkDust

+0

Mac,一個cpp命令行程序。輸入可以是:data1.txt,data2.txt – LustSeeker

+1

與Xcode完全沒有關係。 –

回答

2

你需要給的完整路徑的文件。 Xcode將從build目錄運行應用程序,該目錄不在代碼所在的位置。

如果文件被複製爲建立一個OSX或iOS應用程序,你應該看看bundle structure找到目錄的一部分。

+0

嗯..但我需要通過它到別人的操作系統環境。也許linux?它不會再正常工作? – LustSeeker

+1

如果這是純粹的C++,那麼它可以在所有環境中工作,但問題是哪些目錄是可執行文件和文件。通常的方法是將文件名作爲參數傳遞給可執行文件,而不是依賴它們位於同一目錄中 – Mark

+0

@ Mark:是的,它是純粹的C++。一個非常基本的。它工作,如果我編譯並通過mac終端運行它。但在Xcode,它只是不作爲我的回答說,如果運行frokxcode或命令行的當前目錄下的不同工作:( – LustSeeker

1

你可以告訴Xcode的運行從包含數據文件的目錄中的可執行文件。

調出信息對話框目標可執行文件,並更改值「設置工作目錄:」要麼項目目錄或自定義目錄」