C++ streambuf::sputbackc() function
The C++ std::streambuf::sputbackc() function is used to put a character back into the input sequence of a stream buffer. This function is often used in custom stream manipulations when a character has been read but needs to be unread.
This function returns the character that was put back on success or traits::eof() if the operation fails.
Syntax
Following is the syntax for std::streambuf::sputbackc() function.
int_type sputbackc (char_type c);
Parameters
- c − Character to be put back.
Return Value
This function returns the value of the character put back, as a value of type int.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
It modifies the stream buffer object.
Example 1
In the following example, we are going to consider the basic usage of the sputbackc() function.
#include <iostream>
#include <sstream>
int main() {
std::stringbuf a("Welcome");
char b = a.sbumpc();
std::cout << "First character: " << b << std::endl;
a.sputbackc(b);
char c = a.sbumpc();
std::cout << "Character after putback: " << c << std::endl;
return 0;
}
Output
Output of the above code is as follows −
First character: W Character after putback: W
Example 2
Consider the following example, where we are going to replace the first character by using the sputbackc() function.
#include <iostream>
#include <sstream>
int main() {
std::stringbuf x("Hi");
char y = x.sbumpc();
std::cout << "First character: " << y << std::endl;
x.sputbackc('A');
char z = x.sbumpc();
std::cout << "Character after putback: " << z << std::endl;
return 0;
}
Output
Following is the output of the above code −
First character: H Character after putback: A
streambuf.htm