ncurseを使用して、ユーザーから一度に1つずつキーストロークを消費するアプリを構築し、次の機能を作成します。
ユーザーがタブを押すと、現在の行がオートコンプリートを試みます。
getch()を使用して、各値を取得し、ユーザーがEnterキーを押したときに使用されるバッファーに追加します。
キーを押すたびに画面が更新され、バッファが画面に再描画されます。
問題:この方法でUnicode文字を使用するのに多くの問題があります。例:「Nìco」が出てきます「Nìco」
ncurseを使用して、ユーザーから一度に1つずつキーストロークを消費するアプリを構築し、次の機能を作成します。
ユーザーがタブを押すと、現在の行がオートコンプリートを試みます。
getch()を使用して、各値を取得し、ユーザーがEnterキーを押したときに使用されるバッファーに追加します。
キーを押すたびに画面が更新され、バッファが画面に再描画されます。
問題:この方法でUnicode文字を使用するのに多くの問題があります。例:「Nìco」が出てきます「Nìco」
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);
}
}