Partager via


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Renvoie le dernier caractère qui est lu de la console.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans le Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

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

Paramètres

  • c
    Caractère à renvoyer.

Valeur de retour

Les fonctions retournent le caractère c en cas de réussite. S'il y a une erreur, _ungetch retourne la valeur EOF et _ungetwchretourneWEOF.

Notes

Ces fonctions poussent le caractère c dans la console, et c est le caractère suivant lu par _getch ou _getche (_getwch ou_getwche). _ungetch et _ungetwch échouent si elles sont appelées plusieurs fois avant la lecture suivante. L'argument c ne peut pas être EOF (ou WEOF).

Les versions avec le suffixe _nolock sont identiques mais elles ne sont pas protégées contre les interférence en provenance d'autres threads. Elles peuvent être plus rapides car elles n'entraînent pas la charge du verrouillage des autres threads. Utilisez ces fonctions uniquement dans les contextes thread-safe, tels que les applications à un seul thread ou lorsque la portée appelante gère déjà l'isolation des threads.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_ungettch

_ungetch

_ungetch

_ungetwch

_ungettch_nolock

_ungetch_nolock

_ungetch_nolock

_ungetwch_nolock

Configuration requise

Routine

En-tête requis

_ungetch, _ungetch_nolock

<conio.h>

_ungetwch, _ungetwch_nolock

<conio.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Exemple

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

Voir aussi

Référence

Console et port E/S

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch