std::basic_streambuf<CharT,Traits>::setg (3) - Linux Manuals
std::basic_streambuf<CharT,Traits>::setg: std::basic_streambuf<CharT,Traits>::setg
Command to display std::basic_streambuf<CharT,Traits>::setg
manual in Linux: $ man 3 std::basic_streambuf<CharT,Traits>::setg
NAME
std::basic_streambuf<CharT,Traits>::setg - std::basic_streambuf<CharT,Traits>::setg
Synopsis
void setg( char_type* gbeg, char_type* gcurr, char_type* gend );
Sets the values of the pointers defining the get area. Specifically, after the call eback() == gbeg, gptr() == gcurr, egptr() == gend
Parameters
gbeg - pointer to the new beginning of the get area
gcurr - pointer to the new current character (get pointer) in the get area
gend - pointer to the new end of the get area
Return value
(none)
Example
// Run this code
#include <iostream>
#include <sstream>
class null_filter_buf : public std::streambuf {
std::streambuf* src;
char ch; // single-byte buffer
protected:
int underflow() {
while( (ch= src->sbumpc()) == '\0') ; // skip zeroes
setg(&ch, &ch, &ch+1); // make one read position available
return ch; // may return EOF
}
public:
null_filter_buf(std::streambuf* buf) : src(buf) {
setg(&ch, &ch+1, &ch+1); // buffer is initially full
}
};
void filtered_read(std::istream& in)
{
std::streambuf* orig = in.rdbuf();
null_filter_buf buf(orig);
in.rdbuf(&buf);
for(char c; in.get(c); )
std::cout << c;
in.rdbuf(orig);
}
int main()
{
char a[] = "This i\0s \0an e\0\0\0xample";
std::istringstream in(std::string(std::begin(a), std::end(a)));
filtered_read(in);
}
Output:
This is an example
See also
repositions the beginning, next, and end pointers of the output sequence
setp (protected member function)
Pages related to std::basic_streambuf<CharT,Traits>::setg
- std::basic_streambuf<CharT,Traits>::setp (3) - std::basic_streambuf<CharT,Traits>::setp
- std::basic_streambuf<CharT,Traits>::sbumpc (3) - std::basic_streambuf<CharT,Traits>::sbumpc
- std::basic_streambuf<CharT,Traits>::sgetc (3) - std::basic_streambuf<CharT,Traits>::sgetc
- std::basic_streambuf<CharT,Traits>::sgetn,std::basic_streambuf<CharT,Traits>::xsgetn (3) - std::basic_streambuf<CharT,Traits>::sgetn,std::basic_streambuf<CharT,Traits>::xsgetn
- std::basic_streambuf<CharT,Traits>::showmanyc (3) - std::basic_streambuf<CharT,Traits>::showmanyc
- std::basic_streambuf<CharT,Traits>::snextc (3) - std::basic_streambuf<CharT,Traits>::snextc
- std::basic_streambuf<CharT,Traits>::sputbackc (3) - std::basic_streambuf<CharT,Traits>::sputbackc
- std::basic_streambuf<CharT,Traits>::sputc (3) - std::basic_streambuf<CharT,Traits>::sputc
- std::basic_streambuf<CharT,Traits>::sputn,std::basic_streambuf<CharT,Traits>::xsputn (3) - std::basic_streambuf<CharT,Traits>::sputn,std::basic_streambuf<CharT,Traits>::xsputn
- std::basic_streambuf<CharT,Traits>::sungetc (3) - std::basic_streambuf<CharT,Traits>::sungetc
- std::basic_streambuf<CharT,Traits>::swap (3) - std::basic_streambuf<CharT,Traits>::swap
- std::basic_streambuf<CharT,Traits>::basic_streambuf (3) - std::basic_streambuf<CharT,Traits>::basic_streambuf
- std::basic_streambuf<CharT,Traits>::eback,gptr,egptr (3) - std::basic_streambuf<CharT,Traits>::eback,gptr,egptr
- std::basic_streambuf<CharT,Traits>::gbump (3) - std::basic_streambuf<CharT,Traits>::gbump
- std::basic_streambuf<CharT,Traits>::getloc (3) - std::basic_streambuf<CharT,Traits>::getloc
- std::basic_streambuf<CharT,Traits>::in_avail (3) - std::basic_streambuf<CharT,Traits>::in_avail
- std::basic_streambuf<CharT,Traits>::operator= (3) - std::basic_streambuf<CharT,Traits>::operator=
- std::basic_streambuf<CharT,Traits>::overflow (3) - std::basic_streambuf<CharT,Traits>::overflow
- std::basic_streambuf<CharT,Traits>::pbackfail (3) - std::basic_streambuf<CharT,Traits>::pbackfail
- std::basic_streambuf<CharT,Traits>::pbase,std::basic_streambuf<CharT,Traits>::pptr, (3) - std::basic_streambuf<CharT,Traits>::pbase,std::basic_streambuf<CharT,Traits>::pptr,
- std::basic_streambuf<CharT,Traits>::pbase,std::basic_streambuf<CharT,Traits>::pptr,std::basic_streambuf<CharT,Traits>::epptr (3) - std::basic_streambuf<CharT,Traits>::pbase,std::basic_streambuf<CharT,Traits>::pptr,std::basic_streambuf<CharT,Traits>::epptr
- std::basic_streambuf<CharT,Traits>::pbump (3) - std::basic_streambuf<CharT,Traits>::pbump
- std::basic_streambuf<CharT,Traits>::pubimbue,std::basic_streambuf<CharT,Traits>::imbue (3) - std::basic_streambuf<CharT,Traits>::pubimbue,std::basic_streambuf<CharT,Traits>::imbue
- std::basic_streambuf<CharT,Traits>::pubseekoff, (3) - std::basic_streambuf<CharT,Traits>::pubseekoff,
- std::basic_streambuf<CharT,Traits>::pubseekoff,std::basic_streambuf<CharT,Traits>::seekoff (3) - std::basic_streambuf<CharT,Traits>::pubseekoff,std::basic_streambuf<CharT,Traits>::seekoff
- std::basic_streambuf<CharT,Traits>::pubseekpos, (3) - std::basic_streambuf<CharT,Traits>::pubseekpos,
- std::basic_streambuf<CharT,Traits>::pubseekpos,std::basic_streambuf<CharT,Traits>::seekpos (3) - std::basic_streambuf<CharT,Traits>::pubseekpos,std::basic_streambuf<CharT,Traits>::seekpos
- std::basic_streambuf<CharT,Traits>::pubsetbuf,std::basic_streambuf<CharT,Traits>::setbuf (3) - std::basic_streambuf<CharT,Traits>::pubsetbuf,std::basic_streambuf<CharT,Traits>::setbuf
- std::basic_streambuf<CharT,Traits>::pubsync,std::basic_streambuf<CharT,Traits>::sync (3) - std::basic_streambuf<CharT,Traits>::pubsync,std::basic_streambuf<CharT,Traits>::sync
- std::basic_streambuf<CharT,Traits>::uflow (3) - std::basic_streambuf<CharT,Traits>::uflow
- std::basic_streambuf<CharT,Traits>::underflow (3) - std::basic_streambuf<CharT,Traits>::underflow
- std::basic_streambuf<CharT,Traits>::~basic_streambuf (3) - std::basic_streambuf<CharT,Traits>::~basic_streambuf
- std::basic_streambuf (3) - std::basic_streambuf