_ungetch
, _ungetwch
, _ungetch_nolock
, _ungetwch_nolock
Envia de volta o último caractere que é lido do console.
Importante
Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
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
O caractere a ser enviado.
Retornar valor
Ambas as funções retornarão o caractere c
, se for bem-sucedido. Se houver um erro, _ungetch
retornará um valor de EOF
e _ungetwch
retornará WEOF
.
Comentários
Essas funções empurram o caractere de volta para o console, fazendo com que seja o próximo caractere c
lido por _getch
ou (ou _getwch
_getwche
ou _getche
).c
_ungetch
e _ungetwch
falhar se forem chamados mais de uma vez antes da próxima leitura. O argumento c
pode não estar EOF
(ou WEOF
).
As versões com o sufixo _nolock
são idênticas, exceto que não estão protegidas contra interferência de outros threads. Eles podem ser mais rápidos, uma vez que não incorrem na sobrecarga de bloquear outros threads. Use estas funções apenas em contextos thread-safe, como aplicativos de thread único ou em que o escopo de chamada já trata do isolamento de threads.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _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 obter informações sobre compatibilidade, consulte Compatibilidade.
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 );
}
Whitetoken = White
Confira também
E/S de console e porta
_cscanf
, _cscanf_l
, _cwscanf
, _cwscanf_l
_getch
, _getwch
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de