It is used to put character back and it attempts to move the current position indicator of the controlled input sequence back to the character that precedes the current one.
Following is the declaration for std::streambuf::sputbackc.
int sputbackc (char c);
c − Character to be put back.
It returns the value of the character put back, as a value of type int.
Basic guarantee − if an exception is thrown, the stream buffer is in a valid state.
It modifies the stream buffer object.
In below example explains about std::streambuf::sputbackc.
#include <iostream> #include <cstdio> int main () { char ch; std::streambuf * pbuf = std::cin.rdbuf(); std::cout << "Please, enter some letters and then a number: "; do { ch = pbuf->sbumpc(); if ( (ch>='0') && (ch <='9') ) { pbuf->sputbackc (ch); long n; std::cin >> n; std::cout << "You entered number " << n << '\n'; break; } } while ( ch != EOF ); return 0; }
Let us compile and run the above program, this will produce the following result −
Please, enter some letters and then a number: