_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Pressiona voltar a leitura a mais recente do caractere de console.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW.

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

Parâmetros

  • c
    Caractere a ser empurrado.

Valor de retorno

Ambas as funções retorna o caractere c se com êxito.Se houver um erro, _ungetch retorna um valor de EOF e _ungetwchretornaWEOF.

Comentários

Essas funções empurram o caractere c de volta para o console, causando c para o próximo caractere lido por _getch ou _getche (ou_getwch ou_getwche)._ungetch e _ungetwch falhará se é chamado mais de uma vez em seguida antes da leitura.O argumento de c não pode ser EOF (ou WEOF).

As versões com o sufixo de _nolock são idênticas exceto que não são protegidos de interferência por outros segmentos.Podem ser mais rápidos como não incorrem a sobrecarga de bloqueio para fora outros segmentos.Use estas funções somente em contextos thread-safe como aplicativos de thread única ou onde o escopo de chamada já segmento seguro isolamento.

Mapeamentos da rotina de Genérico- texto

Rotina de TCHAR.H

_UNICODE & _MBCS não definidos

_MBCS definido

_UNICODE definido

_ungettch

_ungetch

_ungetch

_ungetwch

_ungettch_nolock

_ungetch_nolock

_ungetch_nolock

_ungetwch_nolock

Requisitos

Rotina

Cabeçalho necessário

_ungetch, _ungetch_nolock

<conio.h>

_ungetwch, _ungetwch_nolock

<conio.h> ou <wchar.h>

Para informações extras de compatibilidade Compatibilidade na introdução, consulte.

Exemplo

// 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 );
}
  

Consulte também

Referência

Console e a porta de e/S

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch