C++ boost iostreaming筛选器获取空值
我尝试使用boost::iostreams构建一个用于读写char*的流缓冲区:C++ boost iostreaming筛选器获取空值,c++,boost-iostreams,streambuf,C++,Boost Iostreams,Streambuf,我尝试使用boost::iostreams构建一个用于读写char*的流缓冲区: class MemBuf : public std::streambuf { public: MemBuf(char* s, std::size_t n) { setg(s, s, (char*)s+ n); } }; 阅读作品很好: char myreadBuff[100]; myreadBuff[0] = 'a'; MemBuf mb (myreadBuff, 100); istrea
class MemBuf : public std::streambuf
{
public:
MemBuf(char* s, std::size_t n)
{
setg(s, s, (char*)s+ n);
}
};
阅读作品很好:
char myreadBuff[100];
myreadBuff[0] = 'a';
MemBuf mb (myreadBuff, 100);
istream istr (&mb);
cout << istr;
char myreadBuff[100];
myreadBuff[0]=“a”;
MemBuf mb(myreadBuff,100);
istream istr(&mb);
coutsetg
设置读取区域的指针;这对我没有影响
写作
最简单的解决方案是使用两种不同的streambuf
,
MemBufIn
和MemBufOut
:第一次调用setg
,然后
第二个setp
。如果您想要双向流,或者
寻求支持会变得更复杂 试着冲洗你的小溪。
char mywriteBuff[100];
MemBuf mb(mywriteBuff, 100);
ostream ostr($mb);
ostr << "hello world";
cout << mywriteBuff;