儘管文件在項目中,但我仍無法使用fstream打開文件。這裏的代碼:無法通過fstream打開文件cocos2d-x
std::fstream fst("Resources/test.txt");
std::string fileStr;
std::getline(fst, fileStr);
log("line\n %s", fileStr.c_str());
文件test.txt是在我的項目中的資源文件夾,選中。我會感謝你們的幫助。謝謝!
儘管文件在項目中,但我仍無法使用fstream打開文件。這裏的代碼:無法通過fstream打開文件cocos2d-x
std::fstream fst("Resources/test.txt");
std::string fileStr;
std::getline(fst, fileStr);
log("line\n %s", fileStr.c_str());
文件test.txt是在我的項目中的資源文件夾,選中。我會感謝你們的幫助。謝謝!
我認爲fstream無法在cocos2d-x中使用。既不打開。
您可以使用cocos2d :: FileUtils API。
cocos2d::FileUtils * file_utils = cocos2d::FileUtils::sharedFileUtils();
std::string full_path = file_utils->fullPathForFilename("test.txt");
long int data_size;
unsigned char * file_data = file_utils->getFileData(full_path.c_str(), "r", &data_size);
cocos2d::log("file_data is %s", file_data);
*注意:不是 「資源/ test.txt的」 但是 「的test.txt」
哎呀。你應該寫「delete [] file_data;」 finaly。 – 2015-04-01 01:06:46
謝謝,它的工作原理!但我需要寫一些信息到這個文件。沒有fstream課程我該怎麼做? – 2015-04-01 06:11:12
@EugeneAlexeev幾件事情。首先,如果這個答案對你有幫助,那麼爲什麼你沒有提高呢?你不認爲鼓勵別人的幫助是有益的嗎?其次,這個答案不使用'fstream',所以你的評論是什麼意思? – trojanfoe 2015-04-01 06:23:34
我覺得@yuni_net_liberty是錯誤的。
fstream和fopen可以在cocos2d-x中使用。我可以理解爲什麼一些C++代碼無法在C++項目中運行。
fstream不工作的原因是因爲有兩種資源。捆綁出來。捆綁中的資源不能被讀取使用ftream和fopen。他們只能用本地代碼讀取(objctiveC,java)
感謝您的回覆!捆綁和捆綁之間有什麼區別?是否如果資源位於「複製捆綁軟件資源」部分,因此這是「捆綁在一起?」 – 2015-04-01 09:20:14
不,問題是目錄。進程的*當前工作目錄*與應用程序捆綁軟件不同爲什麼代碼在問題中失敗@ yuni_net_liberty的答案是正確的,因爲他們推薦使用FileUtils :: fullPathForFilename()來獲取包中文件的完整路徑,而不管CWD如何。 – trojanfoe 2015-04-01 13:48:21
@trojanfoe非常感謝,人! – 2015-04-03 09:34:52
你不假設*當前工作目錄*是'Resources'文件夾的父目錄嗎? – trojanfoe 2015-03-31 13:53:02
談到目前的工作目錄,你的意思是我的課程在哪裏與流一起工作的目錄?對不起,如果我不明白你的權利。 – 2015-04-01 05:53:30
你在哪個操作系統上運行代碼? – fnc12 2016-10-13 11:37:34