首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将std::string转换为boost::asio::streambuf

将std::string转换为boost::asio::streambuf
EN

Stack Overflow用户
提问于 2017-07-04 11:04:50
回答 1查看 1.2K关注 0票数 1

如何将std::string转换为boost::asio::streambuf?任何线索都会受到赞赏。

最初,我使用boost::asio::read_until(pNetworkConnector->getSocket(), response, "\r\n");初始化boost::asio::streambuf response,并将其转换为底层流,即

代码语言:javascript
复制
boost::asio::streambuf* responsePointer = &response;
iResponseStream.rdbuf(responsePointer);

但是现在我直接用这样的卷发得到一个std::string

代码语言:javascript
复制
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp)
{
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

并把它当作

代码语言:javascript
复制
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(handle, CURLOPT_WRITEDATA, &readBuffer);

如何将std::string转换为boost::asio::streambufstd::streambuf

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-04 11:34:20

下面的代码演示如何在std::stringboost::asio::streambuf之间进行转换,请参阅在线在ideone

代码语言:javascript
复制
#include <iostream>
#include <boost/asio/streambuf.hpp>
#include <boost/asio/buffer.hpp>

int main()
{
   /* Convert std::string --> boost::asio::streambuf */
   boost::asio::streambuf sbuf;
   std::iostream os(&sbuf);
   std::string message("Teststring");
   os << message;

   /* Convert boost::asio::streambuf --> std::string */
   std::string str((std::istreambuf_iterator<char>(&sbuf)),
                    std::istreambuf_iterator<char>());

   std::cout << str << std::endl;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44904295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档