_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock
Convierte el carácter a último leído de la consola.
Importante |
---|
Esta API no se puede utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles con /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
Carácter que se va a insertar.
Valor devuelto
Ambas funciones devuelven el carácter c si correctamente.Si hay un error, _ungetch devuelve un valor de EOF y _ungetwch devuelve WEOF.
Comentarios
Estas funciones incrustan el carácter c de nuevo a la consola, produciendo c para ser el siguiente carácter leída por _getch o _getche (o _getwch o _getwche)._ungetch y _ungetwch darán error si se llama más de una vez antes después de leer.El argumento de c puede no ser EOF (o WEOF).
Las versiones con el sufijo de _nolock son idénticas salvo que no se protegen de interferencia por otros subprocesos.Pueden ser más rápidos como no incurren en la sobrecarga de bloquear out otros subprocesos.Utilice estas funciones solo en contextos seguros como aplicaciones de un único subproceso o donde los identificadores de ámbito de llamada subproceso ya el aislamiento.
Asignaciones de la rutina de Genérico- texto
Rutina de TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_ungettch |
_ungetch |
_ungetch |
_ungetwch |
_ungettch_nolock |
_ungetch_nolock |
_ungetch_nolock |
_ungetwch_nolock |
Requisitos
Rutina |
Encabezado necesario |
---|---|
_ungetch, _ungetch_nolock |
<conio.h> |
_ungetwch, _ungetwch_nolock |
<conio.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
Ejemplo
// 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 );
}