_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 suffixe _nolock
sont identiques, à ceci près qu’elles ne sont pas protégées contre les interférences par d’autres threads. Elles peuvent être plus rapides, car elles n’entraînent pas de surcharge liée au 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.
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 routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_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