【发布时间】:2011-01-19 17:54:04
【问题描述】:
我正在使用 ncurses 库在 C 中编程(这是第一次),我有两个问题。我在 ubuntu 上使用默认终端(gnome 终端)。
1) 我需要调整终端的大小。我使用了 resizeter() 和 resize_term(),但都失败了。
2) 我使用 scrollok() 函数,问题是我丢失了滚动行(当我返回 wscrl() 时,有空行)。
#include <ncurses.h>
int main() {
WINDOW *win, *win2;
int i;
char c;
initscr();
cbreak();
noecho();
win=newwin(8,20,1,1);
box(win,0,0);
win2=newwin(6,18,2,2);
scrollok(win2,1);
wrefresh(win);
wrefresh(win);
for(i=0;i<15;i++){
c=wgetch(win2);
if(c=='u'){
wscrl(win2,-1);
wrefresh(win2);
}
else{
wprintw(win2,"%c\n",c);
wrefresh(win2);
}
}
delwin(win);
delwin(win2);
endwin();
return 0;
}
【问题讨论】:
-
我认为你的意思是调整终端的大小,而不是调整外壳的大小。大多数终端不允许转义序列调整它们的大小,因为这会让用户非常恼火。
-
@R.. 呸,至少调整终端模拟器的大小不会像调整 物理 终端那样烦人。