Próbuję załadować plik rozdzielany przecinkami o nazwie POSDATA.GAMEDATA
. Szukałem kilku miejsc w Internecie i okazało się, że muszę zrobić kilka poprawek i/lub inną klasę.Plik we/wy używający COCOS2D-X
Próbowałem użyć ifstream
. Jednak nie można otworzyć pliku. Xcode 4.3.2 nie może znaleźć mojego pliku POSDATA.GAMEDATA
. Próbowałem również zrobić plik przy użyciu ofstream
, ale kiedy używam open()
w obu przypadkach, plik nie jest otwierany.
Mój kod jest coś takiego:
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;
}
Widziałem CCFileUtils
ale nie wydaje się uzyskać jak go używać.
EDIT: Próbowałem dostarczanie absolutnej ścieżki (/Users/LanceGray/Documents/LanceDev/COCOS2DX/cocos2dx/TestGame/Data/POSDATA.GAMEDATA
) i zadziałało. Nie mogę tego zrobić, ponieważ gra ma być używana na urządzeniach iOS i Androidzie, więc ścieżka nie zawsze jest taka sama na każdym urządzeniu. Każda pomoc zostanie doceniona.
robisz to na Androida lub iOS? jeśli Android lub masz zamiar obsługiwać oba, myślę, że lepiej użyć CCFileUtils, aby uniknąć dostępu do lib zip. Z drugiej strony, jeśli iOS, możesz po prostu użyć fopen. Nie znam zbytnio Ifstream, nie mogę pomóc. –
To powinno być zarówno dla systemu iOS, jak i Androida. Czy możesz podać mały przykład użycia 'CCFileUtils' i' fopen'? W międzyczasie spróbuję ich szukać. – alxcyl