C++ streambuf - sputbackc



Description

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.

Declaration

Following is the declaration for std::streambuf::sputbackc.

int sputbackc (char c);

Parameters

c − Character to be put back.

Return Value

It returns the value of the character put back, as a value of type int.

Exceptions

Basic guarantee − if an exception is thrown, the stream buffer is in a valid state.

Data races

It modifies the stream buffer object.

Example

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:
streambuf.htm
Advertisements