如何将std::string转换为boost::asio::streambuf?任何线索都会受到赞赏。
最初,我使用boost::asio::read_until(pNetworkConnector->getSocket(), response, "\r\n");初始化boost::asio::streambuf response,并将其转换为底层流,即
boost::asio::streambuf* responsePointer = &response;
iResponseStream.rdbuf(responsePointer);但是现在我直接用这样的卷发得到一个std::string
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;
}并把它当作
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(handle, CURLOPT_WRITEDATA, &readBuffer);如何将std::string转换为boost::asio::streambuf或std::streambuf?
发布于 2017-07-04 11:34:20
下面的代码演示如何在std::string和boost::asio::streambuf之间进行转换,请参阅在线在ideone
#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;
}https://stackoverflow.com/questions/44904295
复制相似问题