_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ść EOF
WEOF
.
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 zdefiniowany |
_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> |
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