我試圖加載一個名爲POSDATA.GAMEDATA
的逗號分隔文件。我在互聯網上查了幾個地方,結果我需要做一些調整和/或不同的課程。使用COCOS2D-X的文件I/O
我試過使用ifstream
。但是,它無法打開文件。 Xcode 4.3.2似乎無法找到我的POSDATA.GAMEDATA
文件。我也嘗試使用ofstream
來製作文件,但是當我在兩種情況下都使用open()
時,文件未打開。
我的代碼是這樣的:
using namespace std;
void FileLoader::loadFile(string p_WhichFile) {
// Local Variables
string thisLine;
// Open POSDATA.GAMEDATA
ifstream dataStream;
dataStream.open(p_WhichFile.c_str());
// Check if file is opened
if (!dataStream) {
cerr << "[ ERROR ] Cannot load file:" << p_WhichFile.c_str() << endl;
exit(1);
}
// Get lines of strings
while (getline(dataStream, thisLine)) {
fileContents.push_back(thisLine); // fileContents is a vector<string> object
}
dataStream.close();
cout << "[ NOTICE ] Finished reading file" << p_WhichFile << endl;
}
我見過CCFileUtils
但我似乎無法得到如何使用它。
編輯:我試過提供絕對路徑(/Users/LanceGray/Documents/LanceDev/COCOS2DX/cocos2dx/TestGame/Data/POSDATA.GAMEDATA
),它工作。但是,我不能這樣做,因爲遊戲應該用於iOS設備和Android,所以每個設備上的路徑並不總是相同的。任何幫助將grealy表示讚賞。
你正在做它在Android或iOS?如果android或者你打算支持兩者,我想你最好使用CCFileUtils來避免進入zip庫。另一方面,如果iOS,你可以使用fopen。我對ifstream不是很熟悉,不能幫得太多。 –
它應該適用於iOS和Android。你能舉一個關於如何使用'CCFileUtils'和'fopen'的小例子嗎?在此期間我會盡力尋找他們。 – alxcyl