在线文档教程
C++
输入/输出 | Input/output

std::basic_streambuf::setp

性病:基本[医]流光::SETP

void setp( char_type* pbeg, char_type* pend

设置定义PUT区域的指针的值。特别是在电话之后pbase() == pbeg,,,pptr() == pbeg,,,epptr() == pend...

参数

pbeg-pointer to the new beginning of the put area
pend-pointer to the new end of the put area

返回值

%280%29

二次

#include <iostream> #include <array> // Buffer for std::ostream implemented by std::array template<std::size_t SIZE, class CharT = char> class ArrayedStreamBuffer : public std::basic_streambuf<CharT> { public: using Base = std::basic_streambuf<CharT>; using char_type = typename Base::char_type; ArrayedStreamBuffer() : buffer_{} // value-initialize buffer_ to all zeroes { Base::setp(buffer_.begin(), buffer_.end() // set std::basic_streambuf // put area pointers to work with 'buffer_' } void print_buffer() { for (const auto& i: buffer_) { if (i == 0) { std::cout << "NULL"; } else { std::cout << i; } std::cout << " "; } std::cout << "\n"; } private: std::array<char_type, SIZE> buffer_; }; int main() { ArrayedStreamBuffer<10> streambuf; std::ostream stream(&streambuf stream << "hello"; stream << ","; streambuf.print_buffer( }

二次

产出:

二次

h e l l o , NULL NULL NULL NULL

二次

另见

setgrepositions the beginning, next, and end pointers of the input sequence (protected member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/io/basic[医]Streambuf/SETP