Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Cocos2dx中指针的字符向量写入sqlite文件_Android_C++_Cocos2d X - Fatal编程技术网

Android 从Cocos2dx中指针的字符向量写入sqlite文件

Android 从Cocos2dx中指针的字符向量写入sqlite文件,android,c++,cocos2d-x,Android,C++,Cocos2d X,我正在使用HttpClient类。当我得到响应时,我想将响应数据写入文件。当我检查该文件时,它的格式错误,无法作为普通sqlite文件打开。我的代码怎么了 // Get data std::string path = cocos2d::FileUtils::getInstance()->getWritablePath() + "test.db3"; auto buffer = response->getResponseData();

我正在使用HttpClient类。当我得到响应时,我想将响应数据写入文件。当我检查该文件时,它的格式错误,无法作为普通sqlite文件打开。我的代码怎么了

 // Get data
    std::string path = cocos2d::FileUtils::getInstance()->getWritablePath()
            + "test.db3";
    auto buffer = response->getResponseData();
    FILE *pFile;
    pFile = fopen(path.c_str(), "wb");
    int size = buffer->size();
    fwrite(&size, sizeof(int), 1, pFile);
    fclose(pFile);
解决方案由OP


Wel SQLite是一个数据库。因此,您需要使用表、行等。仅仅写出对.db3文件的响应就会破坏它。您向fwrite传递了错误的参数。第一个应该是
&buffer
,第三个是字节数,所以您必须计算有多少字节。@GameDeveloper:我需要从服务器下载SQLite文件,所以我使用HttpClient,它返回data=response->getResponseData()。不管怎样,我找到了解决这个问题的方法。今后,请把你的解决方案作为你自己问题的答案发布,然后在两天内将其标记为已接受。当其他人遇到这个问题并试图找到答案时,它会有所帮助。:)
// Get data
    std::string path = cocos2d::FileUtils::getInstance()->getWritablePath()
            + "serverdb.sqlite";
    auto buffer = response->getResponseData();
    std::ofstream ofs;
    ofs.open(path.c_str(), std::ios::out | std::ios::trunc);
    ofs.write(&(buffer->front()), buffer->size());
    ofs.flush();
    ofs.close();