_ungetch
, _ungetwch
, _ungetch_nolock
, _ungetwch_nolock
Mendorong kembali karakter terakhir yang dibaca dari konsol.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
int _ungetch(
int c
);
wint_t _ungetwch(
wint_t c
);
int _ungetch_nolock(
int c
);
wint_t _ungetwch_nolock(
wint_t c
);
Parameter
c
Karakter yang akan didorong.
Nilai hasil
Kedua fungsi mengembalikan karakter c
jika berhasil. Jika ada kesalahan, _ungetch
mengembalikan nilai EOF
dan _ungetwch
mengembalikan WEOF
.
Keterangan
Fungsi-fungsi ini mendorong karakter c
kembali ke konsol, menyebabkan c
karakter berikutnya dibaca oleh _getch
atau _getche
(atau _getwch
atau _getwche
). _ungetch
dan _ungetwch
gagal jika dipanggil lebih dari sekali sebelum bacaan berikutnya. Argumen c
mungkin EOF
bukan (atau WEOF
).
Versi dengan akhiran _nolock
identik kecuali tidak dilindungi dari gangguan oleh utas lain. Mereka mungkin lebih cepat karena mereka tidak menimbulkan overhead penguncian utas lain. Gunakan fungsi-fungsi ini hanya dalam konteks aman utas seperti aplikasi utas tunggal atau di mana cakupan panggilan sudah menangani isolasi utas.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_ungettch |
_ungetch |
_ungetch |
_ungetwch |
_ungettch_nolock |
_ungetch_nolock |
_ungetch_nolock |
_ungetwch_nolock |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_ungetch , _ungetch_nolock |
<conio.h> |
_ungetwch , _ungetwch_nolock |
<conio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Baca juga
I/O konsol dan port
_cscanf
, _cscanf_l
, _cwscanf
, _cwscanf_l
_getch
, _getwch
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk