我正在尝试设置输入流的内部缓冲区,但是我在C ++ 17中的实现未为istringstream实现pubsetbuf()。
我尝试了其他一些技术,但是它们很慢,或者复制了原始缓冲区。我正在寻找一种不做任何复制的快速方法。
这与有关输出流的问题密切相关: Setting the internal buffer used by a standard stream (pubsetbuf)
我一直在密切关注它,但是输入流的缓冲区仍未初始化/为空。
...
<layout class="QGridLayout" name="page_4">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_8">
...
</layout>
</item>
</layout>
...
答案 0 :(得分:0)
我已经解决了!找出差异。
template <typename char_type> struct istreambuf : public std::basic_streambuf<char_type, std::char_traits<char_type> > { istreambuf(char_type* buffer, std::streamsize buffer_length) { // Set the "put" pointer to the start of the buffer and record its length. //this->setp(buffer, buffer + buffer_length); // Set the "get" pointer to the start of the buffer, the next item, and record its length. this->setg(buffer, buffer, buffer + buffer_length); } };
我需要设置“ get”指针,而不是“ put”指针。现在效果很好。