Condividi tramite


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Inserisce l'ultimo carattere di lettura dalla console.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

int _ungetch(
   int c 
);
wint_t _ungetwch(
   wint_t c 
);
int _ungetch_nolock(
   int c 
);
wint_t _ungetwch_nolock(
   wint_t c 
);

Parametri

  • c
    Carattere da inserire.

Valore restituito

Entrambe le funzioni restituiscono il carattere c se si riesce.Se è presente un errore, _ungetch restituisce un valore di EOF e _ungetwchrestituisceWEOF.

Note

Queste funzioni indirizzano il carattere c della console, causando c a rappresentare il carattere successivo letto da _getch o _getche (o_getwch o_getwche)._ungetch e _ungetwch ha esito negativo se vengono chiamati più volte prima della successiva lettura.L'argomento di c non può essere EOF (o WEOF).

Le versioni con il suffisso _nolock sono identiche ma non sono protette da interferenze da parte di altri thread.Risultano più veloci poiché non comportano un sovraccarico di bloccare da altri thread.Utilizzare queste funzioni solo in contesti thread-safe come applicazioni a thread singolo o dove gli chiamante di ambito già threading di isolamento.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_ungettch

_ungetch

_ungetch

_ungetwch

_ungettch_nolock

_ungetch_nolock

_ungetch_nolock

_ungetwch_nolock

Requisiti

Routine

Intestazione obbligatoria

_ungetch, _ungetch_nolock

<conio.h>

_ungetwch, _ungetwch_nolock

<conio.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// crt_ungetch.c
// compile with: /c
// In this program, a white-space delimited 
// token is read from the keyboard. When the program 
// encounters a delimiter, it uses _ungetch to replace 
// the character in the keyboard buffer.
//

#include <conio.h>
#include <ctype.h>
#include <stdio.h>

int main( void )
{
   char buffer[100];
   int count = 0;
   int ch;

   ch = _getche();
   while( isspace( ch ) )      // Skip preceding white space.
      ch = _getche();
   while( count < 99 )         // Gather token.
   {
      if( isspace( ch ) )      // End of token.
         break;
      buffer[count++] = (char)ch;
      ch = _getche();
   }
   _ungetch( ch );            // Put back delimiter.
   buffer[count] = '\0';      // Null terminate the token.
   printf( "\ntoken = %s\n", buffer );
}
  

Vedere anche

Riferimenti

Console e porta I/O

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch