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