_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock
Verschiebt das Lesen des letzten Zeichens in der Konsole zurück.
Wichtig |
---|
Diese API kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
int _ungetch( int c ); wint_t _ungetwch( wint_t c ); int _ungetch_nolock( int c ); wint_t _ungetwch_nolock( wint_t c );
Parameter
- c
Gedrückt werden Zeichen.
Rückgabewert
Beide Funktionen geben das Zeichen c zurück, wenn erfolgreich.Wenn es einen Fehler gibt, gibt _ungetch einen Wert von EOF zurück und _ungetwch gibt WEOF zurück.
Hinweise
Diese Funktionen drücken das Zeichen c zurück an der Konsole und bewirken c, das nächste Zeichen zu sein, das von _getch oder _getche (oder _getwch oder _getwche) gelesen wird._ungetch und _ungetwch schlagen fehl, wenn sie mehrmals vor dem nächsten Lesen aufgerufen werden.Das c-Argument ist möglicherweise nicht EOF (oder WEOF).
Die Versionen mit dem _nolock Suffix sind identisch, allerdings werden nicht von der Fehler durch andere Threads geschützt.Sie sind möglicherweise schneller, da sie nicht der Mehraufwand für andere Threads heraus sperren verursachen.Verwenden Sie diese Funktionen nur in threadsichere Kontexten wie Singlethreadanwendung Anwendungen oder, wo die aufrufende Handles des Bereichs bereits Isolation erlauben.
Zuordnung generische Textroutinen
TCHAR.H-Routine |
_UNICODE & _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> |
So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
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 );
}