【发布时间】:2012-08-23 16:19:37
【问题描述】:
我正在尝试加载名为POSDATA.GAMEDATA 的逗号分隔文件。我在互联网上查找了几个地方,结果发现我需要做一些调整和/或不同的课程。
我尝试使用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 设备中使用,因此每个设备上的路径并不总是相同的。任何帮助将不胜感激。
【问题讨论】:
-
您是在 Android 还是 iOS 上进行操作?如果 android 或者您打算同时支持两者,我想您最好使用 CCFileUtils 来避免进入 zip lib。另一方面,如果是 iOS,你可以只使用 fopen。我对 ifstream 不是很熟悉,帮不上什么忙。
-
它应该适用于 iOS 和 Android。你能举一个小例子来说明如何使用
CCFileUtils和fopen吗?在此期间,我会尝试寻找它们。