_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 ) _getwcheist. _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 Suffix _nolock sind identisch, allerdings sind sie nicht vor Störungen durch andere Threads geschützt. Sie sind möglicherweise schneller, da kein Mehraufwand zur Sperrung anderer Threads erforderlich ist. 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. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

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

Konsolen- und Port-E/A
_cscanf, , _cscanf_l_cwscanf_cwscanf_l
_getch, _getwch