在Linux 上模擬kbhit() 和getch() 功能
kbhit() 和getch() 函數通常在Windows 中使用檢查輸入而不中斷循環的執行。但是,Linux 作業系統本身不支援這些函數。
kbhit() 等效項
要在 Linux 上實作類似的功能,您可以利用 Morgan Mattews 的實作kbhit() 函數。此實作與 POSIX 相容系統相容,可以在此處找到。
getch() 等效項
由於 kbhit() 在 termios 層級停用緩衝,因此它還解決了 getchar() 問題。您可以原樣使用 getchar(),而無需像提供的 Windows 範例中那樣停用緩衝。
組合兩個函數
一旦實作了 kbhit() 功能,您可以將 Windows 範例改編為 Linux,如下所示:
<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>
以上是如何在 Linux 上模擬 `kbhit()` 和 `getch()` 功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!