std::basic_streambuf::sputn, std::basic_streambuf::xsputn
From cppreference.com
< cpp | io | basic streambuf
std::streamsize sputn( const char_type* s, std::streamsize count ); |
(1) | |
protected: virtual std::streamsize xsputn( const char_type* s, std::streamsize count ); |
(2) | |
1) Calls
xsputn(s, count)
of the most derived class.2) Writes
count
characters to the output sequence from the character array whose first element is pointed to by s
. The characters are written as if by repeated calls to sputc(). Writing stops when either count
characters are written or a call to sputc() would have returned Traits::eof().If the put area becomes full (pptr() == epptr()), this function may call overflow(), or achieve the effect of calling overflow()
by some other, unspecified, means.
Contents |
[edit] Parameters
(none)
[edit] Return value
The number of characters successfully written.
[edit] Example
Run this code
#include <iostream> #include <sstream> int main() { std::ostringstream s1; std::streamsize sz = s1.rdbuf()->sputn("This is a test", 14); s1 << '\n'; std::cout << "The call to sputn() returned " << sz << '\n' << "The output sequence contains " << s1.str(); std::istringstream s2; sz = s2.rdbuf()->sputn("This is a test", 14); std::cout << "The call to sputn() on an input stream returned " << sz << '\n'; }
Output:
The call to sputn() returned 14 The output sequence contains This is a test The call to sputn() on an input stream returned 0
[edit] See also
invokes xsgetn() (public member function) |