public member function
<streambuf> <iostream>
streamsize sputn (const char* s, streamsize n);
Put sequence of characters
Calls the protected virtual member xsputn with the same arguments s and n.
The default definition of xsputn in streambuf writes characters from the array pointed to by s into the controlled output sequence, until either n characters have been written or the end of the output sequence is reached.
Parameters
- s
- Pointer to the sequence of characters to be written.
- n
- Number of characters to write.
This shall be a non-negative value.
streamsize is a signed integral type.
Return Value
The number of characters written.
streamsize is a signed integral type.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// sputn() example
#include <iostream> // std::streambuf
#include <fstream> // std::ofstream
int main () {
const char sentence[]= "Sample sentence";
std::ofstream ostr ("test.txt");
if (ostr) {
std::streambuf * pbuf = ostr.rdbuf();
pbuf->sputn (sentence,sizeof(sentence)-1);
ostr.close();
}
return 0;
}
|
This example writes a sentence to a file using streambuf's member sputn.
Data races
Accesses up to all of the first n characters in the array pointed by s.
Modifies the stream buffer object.
Concurrent access to the same array or to the same stream buffer object may introduce data races.
Exception safety
Basic guarantee: if an exception is thrown, the stream buffer is in a valid state (this also applies to standard derived classes).
Invalid arguments cause undefined behavior.
See also
- streambuf::sgetn
- Get sequence of characters (public member function)
- streambuf::sputc
- Store character at current put position and increase put pointer (public member function)