std::basic_istream<CharT,Traits>::peek
From cppreference.com
                    
                                        
                    < cpp | io | basic istream
                    
                                                            
                    |   int_type peek();  | 
||
Behaves as UnformattedInputFunction. After constructing and testing the sentry object, reads the next character from the input stream without extracting it.
Parameters
(none)
Return value
If good() == true, returns the next character as obtained by rdbuf()->sgetc()
Otherwise, returns Traits::eof().
Exceptions
If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for badbit, the exception is rethrown.
Example
Run this code
#include <sstream> #include <iostream> int main() { std::istringstream s1("Hello, world."); char c1 = s1.peek(); char c2 = s1.get(); std::cout << "Peeked: " << c1 << " got: " << c2 << '\n'; }
Output:
Peeked: H got: H
See also
|    reads one character from the input sequence without advancing the sequence  (public member function of std::basic_streambuf<CharT,Traits>)  | |
|    extracts characters  (public member function)  | |
|    unextracts a character  (public member function)  |