2012-08-08 107 views
2

使用ncurse構建一個應用程序,該應用程序每次從用戶處使用一次擊鍵來創建以下功能。XCode使用ncurses構建命令行工具

當用戶按下標籤頁時,他的當前行將嘗試自動完成。

使用getch(),我取每個值並將其添加到緩衝區中,以便在用戶按下Enter時消耗。

每次按鍵後屏幕刷新,緩衝區重新繪製到屏幕上。

問題: 這種方式消耗unicode字符有很多麻煩。 例如:「Nìco」即將出現「Nóco」

回答

0
initscr(); 
cbreak(); 
noecho(); 
nonl(); 
move(0,0); 
scrollok(stdscr, TRUE); 
keypad(stdscr, TRUE); 
while(TRUE){ 
    int value = getch(); 
    if(value == '\r'){ 
     int x,y; 
     getyx(stdscr,y,x); 
     move(y, 0); 
     /// add loop and push to buffer 
     char values[1024] = {}; 

     winnstr(stdscr,values, 1024); 
     move(y+1, 0); 
     printw("buffer was %s", values); 
     move(0,0); 
     //break; 
    } 
    else { 
     addch(value); 
    } 
} 
相關問題