_ungetch
, _ungetwch
, _ungetch_nolock
, _ungetwch_nolock
Konsoldan okunan son karakteri geri gönderir.
Önemli
Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
int _ungetch(
int c
);
wint_t _ungetwch(
wint_t c
);
int _ungetch_nolock(
int c
);
wint_t _ungetwch_nolock(
wint_t c
);
Parametreler
c
Gönderilecek karakter.
Dönüş değeri
Her iki işlev de başarılı olursa karakteri c
döndürür. Bir hata varsa değerini _ungetch
döndürür EOF
ve _ungetwch
döndürür WEOF
.
Açıklamalar
Bu işlevler karakteri c
konsola geri gönderir ve bu da veya (veya) _getwch
_getche
_getwche
tarafından _getch
okunan bir sonraki karaktere neden olur.c
_ungetch
ve _ungetwch
bir sonraki okumadan önce birden çok kez çağrılırsa başarısız olur. Bağımsız c
değişken (veya WEOF
) olmayabilir EOF
.
Soneki olan _nolock
sürümler, diğer iş parçacıkları tarafından müdahaleye karşı korunmamaları dışında aynıdır. Diğer iş parçacıklarını kilitleme yüküne neden olmadığından daha hızlı olabilirler. Bu işlevleri yalnızca tek iş parçacıklı uygulamalar gibi iş parçacığı güvenli bağlamlarda veya çağıran kapsamın iş parçacığı yalıtımını zaten işlediği durumlarda kullanın.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_ungettch |
_ungetch |
_ungetch |
_ungetwch |
_ungettch_nolock |
_ungetch_nolock |
_ungetch_nolock |
_ungetwch_nolock |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_ungetch , _ungetch_nolock |
<conio.h> |
_ungetwch , _ungetwch_nolock |
<conio.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Konsol ve bağlantı noktası G/Ç
_cscanf
, _cscanf_l
, _cwscanf
, _cwscanf_l
_getch
, _getwch