首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言指針原理(五十九):鍵盤管理與簡易編輯器雛形

     編輯:關於C

本文作為系列教程的前置篇章,構建一個僅具備基本輸入功能的單屏編輯器雛形,重點演示如何使用 wgetch 捕獲鍵盤輸入並在窗口中顯示,為後續完整編輯器功能奠基。

最小功能集

  • 初始化 ncurses 環境與色彩支持
  • 創建帶邊框的編輯窗口
  • 循環讀取按鍵並在光標處顯示字符
  • 光標自動換行與循環(到達右/下邊界回到左/上邊界)

核心代碼

#include 
#include 
#include 

int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "");
    initscr();
    clear();
    noecho();
    cbreak();

    if (has_colors() == FALSE) {
        endwin();
        printf("你的終端不支持色彩!\n");
        return 1;
    }

    start_color();
    init_pair(1, COLOR_GREEN, COLOR_BLACK);
    WINDOW *win1;
    int width = COLS - 14;
    int height = LINES - 14;
    int x, y;

    win1 = newwin(height, width, 7, 7);
    keypad(win1, TRUE);
    box(win1, ACS_VLINE, ACS_HLINE);
    wattron(win1, COLOR_PAIR(1));
    wrefresh(win1);

    getyx(win1, y, x);
    ++y; ++x;

    while (1) {
        int c = mvwgetch(win1, y, x);
        ++x;
        if (x >= width - 1) { ++y; x = 1; }
        if (y >= height - 1) y = 1;
        mvwprintw(win1, y, x, "%c", c);
        wrefresh(win1);
    }

    wattroff(win1, COLOR_PAIR(1));
    endwin();
    return 0;
}

編譯運行

gcc -lncursesw simple_editor.c -o mytest
./mytest

進階擴展預告

下一篇(第六十篇)將在此基礎上添加方向鍵導航、退格/刪除鍵處理、整行刪除、退出確認等功能,構建一個功能完整的單屏編輯器。

運行截圖

簡易編輯器運行截圖

編輯器界面截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved