std::vector *buffer
我不熟悉 C++ ,这个怎么得到 char* nString 的
因为 CCHttpRequest 返回( getResponseData)的就是 std::vector *buffer 呢
我怎么获得字符串呢 ?
谢谢 哈哈,很浅的问题,网上没找到解决理法 …
std::vector *buffer
我不熟悉 C++ ,这个怎么得到 char* nString 的
因为 CCHttpRequest 返回( getResponseData)的就是 std::vector *buffer 呢
我怎么获得字符串呢 ?
谢谢 哈哈,很浅的问题,网上没找到解决理法 …
std::stringstream oss;
for(unsigned int i=0;i < buffer->size();i++){
oss<<(buffer);
}
string temp=oss.str();
const char * buf=temp.c_str();
我是这么着做的,哈哈*
我也是新手,之前找到一个解决方法
// 用vector来存储response数据缓存
std::vector *buffer = response->getResponseData();
CCLog(“Http Test, dump data: “);
//把vector转换成std::string
std::string buf(buffer->begin(),buffer->end());
//buf.c_str()把std::string转换成string;
CCLog(”%s”,buf.c_str());
你的responseString开辟了足够大的内存空间吗?
试试这样:
char* responseString = new char;
std::copy(buffer->begin(), buffer->end(), responseString);
好的,谢谢,今天回家再试试去
知道怎么做了,就是这样
std::copy(buffer->begin(), buffer->end(), responseString);
但是,这样取得值后,能打印出值来,XCode 报错如下 …
thread #6: tid = 0x2503, 0x03c66cee libLLVMContainer.dylibllvm::BasicBlock::getTerminator() + 30, stop reason = EXC_BAD_ACCESS (code=1, address=0x45505958) frame #0: 0x03c66cee libLLVMContainer.dylib
llvm::BasicBlock::getTerminator() + 30
frame #1: 0x03bd8d6f libLLVMContainer.dylibunsigned int llvm::DFSPass<llvm::GraphTraits<llvm::BasicBlock*> >(llvm::DominatorTreeBase<llvm::GraphTraits<llvm::BasicBlock*>::NodeType>&, llvm::GraphTraits<llvm::BasicBlock*>::NodeType*, unsigned int) + 831 frame #2: 0x03bd4ead libLLVMContainer.dylib
void llvm::Calculate<llvm::Function, llvm::BasicBlock*>(llvm::DominatorTreeBase<llvm::GraphTraitsllvm::BasicBlock*::NodeType>&, llvm::Function&) + 573
frame #3: 0x0395f5dd libLLVMContainer.dylibvoid llvm::DominatorTreeBase<llvm::BasicBlock>::recalculate<llvm::Function>(llvm::Function&) + 525 frame #4: 0x03c8d2eb libLLVMContainer.dylib
llvm::DominatorTree::runOnFunction(llvm::Function&) + 27
frame #5: 0x03ce267c libLLVMContainer.dylibllvm::FPPassManager::runOnFunction(llvm::Function&) + 284 frame #6: 0x03ce2036 libLLVMContainer.dylib
llvm::FunctionPassManagerImpl::run(llvm::Function&) + 198
frame #7: 0x03ce1f3a libLLVMContainer.dylibllvm::FunctionPassManager::run(llvm::Function&) + 122 frame #8: 0x11f92ef1 libGLVMPlugin.dylib
cvmOptimizeModularFunction + 55
frame #9: 0x11fd5cb4 libGLVMPlugin.dylibglvmBuildFPTransformFunction + 23508 frame #10: 0x11fe36da libGLVMPlugin.dylib
cvmsModularBuilder + 166
frame #11: 0x0363d78d libCoreVMClient.dylibcvmsCompBuildModularFunction + 179 frame #12: 0x036406bf libCoreVMClient.dylib
cvmsServerBuildModularFunction + 245
frame #13: 0x0363ebcf libCoreVMClient.dylibCVMSBuildModularFunction + 112 frame #14: 0x0363578f libCVMSPluginSupport.dylib
cvm_deferred_build_modular(void*) + 247
frame #15: 0x036355e0 libCVMSPluginSupport.dylibcvmDoWork + 57 frame #16: 0x97ed65b7 libsystem_c.dylib
_pthread_start + 344
不错,我用你的了
最简单的版本,无需任何内存拷贝:
char const* sz = &(*buffer->begin());
Cocos2d 开发的同学们可以考虑吧HttpRequest统一出一个版本支持Lua 或 JS的。这个还是比较常用的类,免得大家都自己写一遍。
不用,哪有那么费劲,这样就可以了 std::string str(buffer->begin(),buffer->end());
但是,我不知道怎么显示出中文,我显示的中文是乱码。。。。。