XCode使用ncurses构建命令行工具

时间:2012-08-08 22:31:23

标签: xcode cocoa command-line ncurses curses

使用ncurse构建一个应用程序,该应用程序一次一个地使用一次击键来创建以下功能。

当用户按Tab键时,他当前的行将尝试自动完成。

使用getch(),我获取每个值并将其添加到缓冲区中,以便在用户按Enter键时使用。

每次击键后,屏幕都会刷新,缓冲区会重新绘制到屏幕上。

问题: 我通过这种方式消耗unicode字符会遇到很多麻烦。 示例:“Nìco”即将出现“NÃco”

1 个答案:

答案 0 :(得分: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);
    }
}