_ungetch
, _ungetwch
, _ungetch_nolock
, _ungetwch_nolock
Schiebt das zuletzt aus der Konsole gelesene Zeichen zurück.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
int _ungetch(
int c
);
wint_t _ungetwch(
wint_t c
);
int _ungetch_nolock(
int c
);
wint_t _ungetwch_nolock(
wint_t c
);
Parameter
c
Zu verschiebendes Zeichen.
Rückgabewert
Beide Funktionen geben bei Erfolg das Zeichen c
zurück. Wenn ein Fehler auftritt, _ungetch
wird ein Wert zurückgegeben EOF
und _ungetwch
zurückgegeben WEOF
.
Hinweise
Diese Funktionen verschieben das Zeichen c
zurück an die Konsole, was dazu führt c
, dass das nächste Zeichen gelesen von _getch
oder _getche
(oder _getwch
) _getwche
ist. _ungetch
und _ungetwch
schlägt fehl, wenn sie vor dem nächsten Lesen mehrmals aufgerufen werden. Das c
-Argument darf nicht EOF
(oder WEOF
) sein.
Die Versionen mit dem _nolock
Suffix sind identisch, mit der Ausnahme, dass sie nicht vor Störungen durch andere Threads geschützt sind. Sie können schneller sein, da sie keinen Aufwand für das Sperren anderer Threads verursachen. Verwenden Sie diese Funktionen nur in threadsichere Kontexten wie z. B. in Singlethreadanwendungen oder in Fällen, in denen der aufrufende Bereich die Threadisolation bereits handhabt.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
TCHAR.H-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS Definiert |
_UNICODE Definiert |
---|---|---|---|
_ungettch |
_ungetch |
_ungetch |
_ungetwch |
_ungettch_nolock |
_ungetch_nolock |
_ungetch_nolock |
_ungetwch_nolock |
Anforderungen
Routine | Erforderlicher Header |
---|---|
_ungetch , _ungetch_nolock |
<conio.h> |
_ungetwch , _ungetwch_nolock |
<conio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Konsole und Port-E/A
_cscanf
, _cscanf_l
, _cwscanf
, _cwscanf_l
_getch
, _getwch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für