_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Odepchnie ostatni znak odczytany z konsoli.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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 zakończy się powodzeniem. Jeśli wystąpi błąd, _ungetch zwraca wartość i _ungetwch zwraca wartość EOFWEOF.

Uwagi

Te funkcje wypychają znak c z powrotem do konsoli, co powoduje c , że następny znak odczytany przez _getch lub _getche (lub lub _getwch_getwche). _ungetch i _ungetwch kończą się niepowodzeniem, jeśli są one wywoływane więcej niż raz przed następnym odczytem. Argument c może nie być EOF (lub WEOF).

Wersje z sufiksem _nolock są identyczne, z tą różnicą, że nie są chronione przed ingerencją innych wątków. Mogą one być szybsze, ponieważ nie powodują obciążenia związanego z blokowaniem innych wątków. Używaj tych funkcji tylko w kontekstach bezpiecznych wątkowo, takich jak aplikacje jednowątkowe lub gdzie zakres wywołujący obsługuje już izolację wątków.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_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>

Aby uzyskać więcej informacji 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 );
}

Whitetoken = White

Zobacz też

We/Wy konsoli i portu
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
_getch, _getwch