C ++ streambuf - sungetc
Descrizione
Viene utilizzato per diminuire la posizione corrente e tenta di spostare l'indicatore della posizione corrente della sequenza di input controllata indietro di una posizione al carattere che precede quello corrente, rendendo nuovamente disponibile il carattere in quella posizione per la successiva operazione di input.
Dichiarazione
Di seguito è riportata la dichiarazione per std :: streambuf :: sungetc.
int sungetc();
Parametri
nessuna
Valore di ritorno
Restituisce il valore del nuovo carattere corrente della sequenza di input controllata, come valore di tipo int.
Eccezioni
Basic guarantee - se viene generata un'eccezione, il buffer del flusso è in uno stato valido.
Gare di dati
Modifica l'oggetto buffer del flusso.
Esempio
Nell'esempio seguente viene spiegato lo std :: streambuf :: sungetc.
#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->sungetc ();
long n;
std::cin >> n;
std::cout << "You entered number " << n << '\n';
break;
}
} while ( ch != EOF );
return 0;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
Please, enter some letters and then a number: