Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Meniru Fungsi `kbhit()` dan `getch()` di Linux?
Meniru Fungsi kbhit() dan getch() pada Linux
Fungsi kbhit() dan getch() biasanya digunakan dalam Windows untuk semak input tanpa mengganggu pelaksanaan gelung. Walau bagaimanapun, fungsi ini tidak disokong secara asli pada sistem pengendalian Linux.
Setara kbhit()
Untuk mencapai kefungsian serupa pada Linux, anda boleh menggunakan pelaksanaan Morgan Mattews untuk fungsi kbhit(). Pelaksanaan ini serasi dengan sistem yang mematuhi POSIX dan boleh didapati di sini.
Setara getch()
Memandangkan kbhit() menyahaktifkan penimbalan pada peringkat termios, ia juga menangani isu getchar(). Anda boleh menggunakan getchar() sebagaimana adanya tanpa melumpuhkan penimbalan seperti dalam contoh Windows yang disediakan.
Menggabungkan Kedua-dua Fungsi
Setelah anda melaksanakan fungsi kbhit(), anda boleh menyesuaikan contoh Windows kepada Linux seperti berikut:
<code class="C++">#include <unistd.h> #include <iostream> int main() { while (true) { if (kbhit()) { int key = getch(); if (key == 'g') { std::cout << "You pressed G" << std::endl; } } usleep(500000); std::cout << "Running" << std::endl; } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Meniru Fungsi `kbhit()` dan `getch()` di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!