溫馨提示×

如何在Linux中使用getchar實現(xiàn)鍵盤控制

小樊
82
2024-09-06 21:21:06
欄目: 智能運維

在 Linux 中,您可以使用 C 語言的 getchar() 函數(shù)來實現(xiàn)鍵盤控制

#include<stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>

int main() {
    struct termios old_term, new_term;
    int c;

    // 獲取當前終端設(shè)置
    tcgetattr(STDIN_FILENO, &old_term);

    // 復制舊的終端設(shè)置到新的設(shè)置中
    new_term = old_term;

    // 修改新的終端設(shè)置以實現(xiàn)無緩沖輸入
    new_term.c_lflag &= ~(ICANON | ECHO);

    // 應用新的終端設(shè)置
    tcsetattr(STDIN_FILENO, TCSANOW, &new_term);

    printf("按下 'q' 鍵退出程序\n");

    while (1) {
        c = getchar();

        if (c == 'q') {
            break;
        }

        printf("您按下了 '%c' 鍵\n", c);
    }

    // 恢復舊的終端設(shè)置
    tcsetattr(STDIN_FILENO, TCSANOW, &old_term);

    return 0;
}

這個程序會在每次按鍵時立即讀取字符,而不是等待用戶按下回車鍵。當用戶按下 ‘q’ 鍵時,程序?qū)⑼顺?。在程序運行期間,您可以嘗試按下其他鍵并查看程序的響應。

0