Decrease get pointer
Moves the get pointer one character backwards, making the last character gotten by an input operation available once again for the next input operation.
During its operation, the function will call the protected virtual member function pbackfail if the get pointer gptr points to the same position as the beginning pointer eback.
Parameters
none
Return Value
The value of the character in the new get pointer position.
If the get pointer is at the beginning of the input sequence the function returns
EOF (or
traits::eof() for other traits).
Example
// sungetc
#include <iostream>
using namespace std;
int main () {
char ch;
long n;
streambuf * pbuf;
pbuf = cin.rdbuf();
cout << "Please enter some letters and after a number: ";
do {
ch=pbuf->sbumpc();
if ( (ch>='0') && (ch <='9') )
{
pbuf->sungetc ();
cin >> n;
cout << "You entered number " << n << endl;
break;
}
} while (ch != EOF);
return 0;
}
|
This example gets characters form standard input one by one. When the first numeric digit is found, sungetc is called to restore the position in the stream to that digit in order to be extracted as part of a number using the extraction operator >>.
Basic template member declaration
( basic_streambuf<charT,traits> )
typedef traits::int_type int_type;
int_type sungetc ( );
|
See also
streambuf::snextc | Increase get pointer and return next character (public member function) |
streambuf::sbumpc | Get current character and increase get pointer (public member function) |
streambuf::sputc | Store character at current put position and increase put pointer (public member function) |