Bagikan melalui


_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