_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Verschiebt das Lesen des letzten Zeichens in der Konsole zurück.

Wichtiger HinweisWichtig

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

Siehe auch

Referenz

Konsole und Port E/A

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch