Udostępnij za pośrednictwem


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Przesuwa ostatni znak, który jest odczytywany z konsoli.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW.

int _ungetch(
   int c 
);
wint_t _ungetwch(
   wint_t c 
);
int _ungetch_nolock(
   int c 
);
wint_t _ungetwch_nolock(
   wint_t c 
);

Parametry

  • c
    Znak do wypchnięcia.

Wartość zwracana

Obie funkcje zwracają znak c jeśli kończy się pomyślnie.Jeżeli wystąpi błąd, _ungetch zwraca wartość EOF i _ungetwchzwracaWEOF.

Uwagi

Te funkcje wpychają znak c z powrotem do konsoli, powodując c , że jest następnym znakiem odczytanym przez _getch lub _getche (lub_getwch lub_getwche)._ungetch i _ungetwch zakończą się niepowodzeniem, jeśli są one wezwane więcej niż jeden raz przed następnym odczytem.c argument może nie być EOF (lub WEOF).

Wersje przyrostka _nolock są identyczne poza tym, że nie są chronione przed ingerencją przez inne wątki.Mogą one być szybsze, ponieważ nie wiążą się z obciążeniem związanym z blokowaniem innych wątków.Używaj tych funkcji tylko w kontekstach wątków, takich jak aplikacje jednowątkowe lub gdzie zakres wywołujący już obsługuje izolację wątków.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_ungettch

_ungetch

_ungetch

_ungetwch

_ungettch_nolock

_ungetch_nolock

_ungetch_nolock

_ungetwch_nolock

Wymagania

Procedura

Wymagany nagłówek

_ungetch, _ungetch_nolock

<conio.h>

_ungetwch, _ungetwch_nolock

<conio.h> lub <wchar.h>

Dodatkowe informacje o zgodności – zobacz: Zgodność.

Przykład

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

Zobacz też

Informacje

Operacje We/Wy konsoli i portu

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch