2

ncurseを使用して、ユーザーから一度に1つずつキーストロークを消費するアプリを構築し、次の機能を作成します。

ユーザーがタブを押すと、現在の行がオートコンプリートを試みます。

getch()を使用して、各値を取得し、ユーザーがEnterキーを押したときに使用されるバッファーに追加します。

キーを押すたびに画面が更新され、バッファが画面に再描画されます。

問題:この方法でUnicode文字を使用するのに多くの問題があります。例:「Nìco」が出てきます「Nìco」

4

1 に答える 1

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);
    }
}
于 2012-08-09T01:57:10.707 に答える