使用 ncurse 构建一个应用程序,该应用程序一次使用用户的一次击键来创建以下功能。
当用户按下制表符时,他的当前行将尝试自动完成。
使用 getch(),我获取每个值并将其添加到缓冲区中,以便在用户按 Enter 时使用。
每次击键后,屏幕都会刷新,缓冲区会重新绘制到屏幕上。
问题:我在以这种方式使用 unicode 字符时遇到了很多麻烦。示例:“Nìco”正在出现“Nìco”
使用 ncurse 构建一个应用程序,该应用程序一次使用用户的一次击键来创建以下功能。
当用户按下制表符时,他的当前行将尝试自动完成。
使用 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);
}
}