Ich versuche, eine kommagetrennte Datei namens POSDATA.GAMEDATA
zu laden. Ich habe mehrere Stellen im Internet nachgeschlagen und es stellt sich heraus, dass ich ein paar Optimierungen und/oder eine andere Klasse machen muss.Datei-E/A mit COCOS2D-X
Ich versuchte mit ifstream
. Es kann die Datei jedoch nicht öffnen. Xcode 4.3.2 scheint meine POSDATA.GAMEDATA
Datei nicht zu finden. Ich habe auch versucht, die Datei mit ofstream
zu machen, aber wenn ich open()
in beiden Fällen verwende, wird die Datei nicht geöffnet.
ist mein Code so etwas wie diese:
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;
}
ich CCFileUtils
gesehen habe, aber ich kann nicht scheinen, wie es zu benutzen.
EDIT: Ich habe versucht, die absolute Pfad (/Users/LanceGray/Documents/LanceDev/COCOS2DX/cocos2dx/TestGame/Data/POSDATA.GAMEDATA
) und es funktioniert. Allerdings kann ich das nicht machen, da das Spiel in iOS-Geräten und Android verwendet werden soll, so dass der Pfad nicht immer auf jedem Gerät gleich ist. Jede Hilfe wird sehr geschätzt.
Sie es auf Android oder iOS tun? Wenn Android oder Sie beide unterstützen möchten, sollten Sie besser CCFileUtils verwenden, um nicht in die ZIP-Lib zu gelangen. Auf der anderen Seite, wenn iOS, können Sie einfach fopen verwenden. Ich bin nicht sehr vertraut mit ifstream, kann nicht viel helfen. –
Es soll für iOS und Android sein. Kannst du ein kleines Beispiel geben, wie man 'CCFileUtils' und' fopen' verwendet? Ich werde versuchen, in der Zwischenzeit nach ihnen zu suchen. – alxcyl