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

NCurses 程式設計:scanw、getstr 系列輸入函數完整解析與實戰

     編輯:關於C

格式化輸入函數

scanw()

在螢幕任意位置讀取格式化字串,類似 scanf 但支援游標定位。

wscanw() / mvwscanw()

從指定視窗讀取資料,mvwscanw 可先移動游標再讀取。

字串讀取函數族:getstr() 系列

從終端讀取字串,本質等同連續呼叫 getch() 讀取字元,直到遇到換行、CR 或 EOF 才停止,將指標指向讀取的字串。

完整互動範例

#include 
#include 
#include 

int main() {
    char mess[] = "您的性別:";
    char mesg[] = "您的名字:";
    char name[80];
    char sex[10];
    int row, col;

    setlocale(LC_ALL, "");
    initscr();
    getmaxyx(stdscr, row, col);           // 取得螢幕尺寸
    
    mvprintw(row/2, col/2 - strlen(mesg), "%s", mesg);
    getstr(name);                          // 讀取名字
    
    mvprintw(row/3, col/2 - strlen(mess), "%s", mess);
    getstr(sex);                           // 讀取性別
    
    char man[] = "man";
    if (strcmp(sex, man) == 0)
        mvprintw(LINES-2, 0, "%s先生好,很高興認識您", name);
    else
        mvprintw(LINES-2, 0, "%s女士好,很高興認識您", name);
    
    refresh();
    getch();
    endwin();
    return 0;
}

編譯與執行

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

程式執行畫面

關鍵提醒:中文環境必須連結 ncursesw 並呼叫 setlocale(LC_ALL, "")。

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