Partager via


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Renvoie le dernier caractère lu à partir de la console via une transmission push.

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 dans les applications de la plateforme Windows universelle.

Syntaxe

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 (transmission push).

Valeur retournée

Ces deux fonctions retournent le caractère c en cas de réussite. En cas d’erreur, _ungetch retourne une valeur et EOF_ungetwch retourne WEOF.

Notes

Ces fonctions renvoient le caractère c à la console, ce qui c entraîne la lecture du caractère suivant ou _getch_getche (ou_getwch)._getwche _ungetch et _ungetwch échouent s’ils sont appelés plusieurs fois avant la lecture suivante. L’argument c ne peut pas être différent de EOF (ou WEOF).

Les versions avec le _nolock suffixe sont identiques, sauf qu’elles ne sont pas protégées contre les interférences par d’autres threads. Ils peuvent être plus rapides, car ils n’entraînent pas de surcharge de verrouillage d’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.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_ungettch _ungetch _ungetch _ungetwch
_ungettch_nolock _ungetch_nolock _ungetch_nolock _ungetwch_nolock

Spécifications

Routine En-tête requis
_ungetch, _ungetch_nolock <conio.h>
_ungetwch, _ungetwch_nolock <conio.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

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

Whitetoken = White

Voir aussi

E/S de console et de port
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
_getch, _getwch