我正在使用ncurses爲我的應用程序製作一個簡單的TUI。 我得到了創建和打印到窗口的基礎知識,但是我遇到了輸入問題。光標在打字時留下窗口(ncurses)
但是,當我開始打字,光標移動到終端窗口的左上角。
我怎樣才能保持它的地方,而打字?
這裏是我的代碼:
#include <ncurses.h>
WINDOW *win;
int startx, starty, width, height;
int cport;
WINDOW *makewin(int h, int w, int y, int x)
{
WINDOW *lwin;
lwin = newwin(h, w, y, x);
box(lwin, 0 , 0);
wrefresh(lwin);
return lwin;
}
void dewin(WINDOW *lwin)
{
wborder(lwin, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
wrefresh(lwin);
delwin(lwin);
}
void getPort(){
win = makewin(height, width, starty, startx);
wbkgd(win, COLOR_PAIR(1));
mvwprintw(win, 0, 8, "Port Settings");
mvwprintw(win, 2, 4, "Set port server should");
mvwprintw(win, 3, 4, "listen to: ");
wrefresh(win);
scanw("%d", &cport);
}
int main()
{
initscr();
cbreak();
keypad(stdscr, TRUE);
start_color();
init_pair(1,COLOR_WHITE, COLOR_BLACK);
init_pair(2,COLOR_WHITE, COLOR_BLUE);
bkgd(COLOR_PAIR(2));
refresh();
height = 6;
width = 30;
starty = (LINES - height)/2;
startx = (COLS - width)/2;
getPort();
getch();
dewin(win);
endwin();
return 0;
}
謝謝!我甚至沒有想過,Windows也有專門的閱讀功能,就像打印一樣。使用** wscanw **解決了問題:) – Nidrax