_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Refoule le dernier caractère lu à partir de la console.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.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 à effectuer un push.

Valeur de retour

Les deux fonctions retournent le caractère c si réussies.Si une erreur, _ungetch retourne une valeur d' EOF et _ungetwchretourneWEOF.

Notes

Ces fonctions poussent le caractère c dans la console, provoquant c être le caractère suivant lu par _getch ou _getche (ou_getwch ou_getwche)._ungetch et _ungetwch échouent s'ils sont appelés plusieurs fois avant le prochain lus.L'argument d' c peut ne pas être EOF (ou WEOF).

Les versions avec le suffixe d' _nolock sont identiques sauf qu'elles ne sont pas protégés des interférence par d'autres threads.Ils peuvent être plus rapides car elles n'entraînent pas la charge mémoire de verrouiller d'autres threads.Utilisez ces fonctions uniquement dans des contextes thread-safe tels que des applications à un seul thread ou où les handles appelants de portée déjà thread l'isolation.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_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> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

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

E/S de console et de port

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch