【发布时间】:2010-11-18 12:39:21
【问题描述】:
正如我的标题所说,我想将 curl 执行的输出保存到向量中。 任何人都可以给我一个示例代码吗? 我能够将它保存到 c 中的结构中。但我想将它保存到一个向量中,这也是 c++ 中的,我对 c++ 有点不满意。
vector<string> contents;
size_t handle_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
int numbytes = size*nmemb;
char lastchar = *((char *) ptr + numbytes - 1);
*((char *) ptr + numbytes - 1) = '\0';
contents.push_back((char *)ptr);
*((char *) ptr + numbytes - 1) = lastchar; // Might not be necessary.
return size*nmemb;
}
int main(int argc, char *argv[])
{
vector<string>::iterator i;
CURL* curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl,CURLOPT_URL, argv[1]);
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,handle_data);
CURLcode res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res == 0){
for(i=contents.begin();i!=contents.end();i++)
cout << *i << endl;
}else
cerr << "Error: " << res << endl;
}
return 0;
}
【问题讨论】:
-
什么是“卷曲表演”?它是活生生的吗?我可以吃吗?或者它有签名吗?您为什么不向我们展示您拥有什么,以及您需要调用的 curl 函数的签名,以及您希望结果最终包含的数据结构?事实上,您的问题需要了解 C++ 和 curl。并且知道 curl 的 C++ 程序员比 C++ 程序员少得多。
-
@sbi,我真的不认为你想吃 curl。另一方面,我听说每年的这个时候 greps 都很好吃。
-
@sbi : :P .. 会给你我拥有的 sn-p .. 我认为它的工作.. 有一个将页面保存为字符串的代码。编辑它以保存到矢量中。
-
你说的是curl_easy_perform吗?
-
这段代码丑得要命,编译时遗漏了很多
std::前缀,使用C风格的强制转换,长时间使用大括号和缩进可能会导致眼癌。不过,不知道 curl,我不知道它在算法上可能有什么问题,而且你也没有给出任何线索。