_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Convierte el carácter a último leído de la consola.

Nota importanteImportante

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

Vea también

Referencia

E/S de la consola y de puerto

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch