91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c語言term函數的具體實現方式

小樊
88
2024-09-05 01:26:03
欄目: 編程語言

在C語言中,term函數并不是一個標準庫函數

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

struct termios orig_term;

void term_init() {
    tcgetattr(STDIN_FILENO, &orig_term);
    struct termios new_term = orig_term;
    new_term.c_lflag &= ~(ECHO | ICANON);
    tcsetattr(STDIN_FILENO, TCSANOW, &new_term);
}

void term_restore() {
    tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
}

int main() {
    term_init();

    char ch;
    while ((ch = getchar()) != 'q') {
        printf("You pressed: %c\n", ch);
    }

    term_restore();
    return 0;
}

在這個示例中,我們首先使用tcgetattr函數獲取當前終端設置,并將其保存在orig_term結構體中。然后,我們創建一個新的終端設置結構體new_term,并將其設置為原始設置的副本。接下來,我們關閉ECHOICANON模式,以便在按下鍵時立即讀取字符,而不是等待換行符。最后,我們使用tcsetattr函數將修改后的設置應用到終端。

在主循環中,我們使用getchar函數讀取用戶輸入的字符。當用戶按下’q’鍵時,我們退出循環并恢復原始終端設置。

請注意,這個示例僅適用于Unix-like系統(如Linux和macOS)。在Windows系統上,您需要使用不同的API來實現類似的功能。

0
万源市| 互助| 邹城市| 东源县| 荆州市| 鄂州市| 汕头市| 睢宁县| 历史| 荥经县| 沽源县| 湖南省| 隆林| 德兴市| 江油市| 贵德县| 武义县| 昌乐县| 大姚县| 昌吉市| 九江市| 砀山县| 安庆市| 抚州市| 新安县| 霍邱县| 栾城县| 兴隆县| 兰州市| 隆昌县| 公安县| 报价| 海口市| 德兴市| 和平区| 汉源县| 清水河县| 扶风县| 民权县| 白银市| 丰城市|