C++ streambuf::sputc() function
The C++ std::streambuf::sputc() function is used to insert a single character into the output sequence of the buffer. It takes a character as an argument and append it to the buffer. If successful, it returns the inserted character otherwise, it returns traits_type::eof() to indicate an error.
Syntax
Following is the syntax for std::streambuf::sputc() function.
int sputc (char c);
Parameters
- c − It indicates the character to be put.
Return Value
It returns for successive case, the character put is returned, as a value of type int. Otherwise, it returns the end-of-file value (EOF) to signal a failure.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
Example 1
In the following example, we are going to consider the basic usage of the sputc() function.
#include <iostream>
#include <sstream>
int main() {
std::string str = "AUTORIALSPOINT";
std::stringbuf x(str, std::ios::in | std::ios::out);
x.sputc('T');
std::cout << x.str();
return 0;
}
Output
Output of the above code is as follows −
TUTORIALSPOINT
Example 2
Consider the following example, where we are going to use the sputc() function to modify the characters in the loop.
#include <iostream>
#include <sstream>
int main() {
std::string str = "Hello";
std::stringbuf y(str, std::ios::in | std::ios::out);
for (int i = 0; i < 5; ++i) {
y.sputc('1');
}
std::cout << y.str();
return 0;
}
Output
Following is the output of the above code −
11111
Example 3
Let's look at the following example, where we are going to use the pubseekpos() along with the sputc().
#include <iostream>
#include <sstream>
int main() {
std::string str = "Hi,Vanakam";
std::stringbuf x(str, std::ios::in | std::ios::out);
x.pubseekpos(2);
x.sputc(' ');
std::cout << x.str();
return 0;
}
Output
If we run the above code it will generate the following output −
Hi Vanakam