_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock
Pressiona voltar a leitura a mais recente do caractere de console.
Importante |
---|
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 );
}