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: