_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock
Przesuwa ostatni znak, który jest odczytywany z konsoli.
Waż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