streambuf::snextc | public member function |
int snextc ( ); |
Increase get pointer and return next character
Advances the get pointer one position, and then returns the newly pointed character in the sequence.
During its operation, the function will call the protected virtual member function uflow if the get pointer gptr reaches the end pointer egptr (or if it is a null pointer).
Notice that, although similar, the following functions have different behaviors:
- sgetc: returns the character pointed by the get pointer.
- sbumpc: advances the get pointer and returns the character pointed by it before the call.
- snextc: advances the get pointer and returns the character pointed by it after the call.
Parameters
noneReturn Value
The character pointed by the new position of the get pointer (type-casted to the appropiate return type).If the controlled input sequence has exhausted, and uflow could not retrieve more characters, the function returns EOF (or traits::eof() for other traits).
Example
// show file content - snextc () example #include <iostream> #include <fstream> using namespace std; int main () { char ch; streambuf * pbuf; ifstream istr ("test.txt"); pbuf = istr.rdbuf(); do { ch=pbuf->sgetc(); cout << ch; } while (pbuf->snextc()!=EOF); istr.close(); return 0; } |
This example shows the content of a file on screen, using the combination of sgetc and snextc to read the input file.
Basic template member declaration
( basic_streambuf<charT,traits> )
typedef traits::int_type int_type;
int_type snextc ( );
|
See also
streambuf::sbumpc | Get current character and increase get pointer (public member function) |
streambuf::sgetc | Get current character (public member function) |
streambuf::sgetn | Get sequence of characters (public member function) |