Ncurses入门-(二)游标与窗口
Ncurses入门-(二)游标控制与窗口
游标控制
在curses中我们使用move(y,x);
来移动游标位置
例如以下程序:
#include <bits/stdc++.h>
#include <ncurses.h>
int main(){
initscr();
int x,y;
x = y = 10;
move(y,x);
printw("Hello World!");
getch();
endwin();
return 0;
}
编译完成后将看到如下效果(编译别忘了加上-lncurses参数):
在效果图中,我们可以看到当前游标位置在Hello World!语句之后,这证明游标会跟随打印位置变化
当然,我们也可以使用getyx(win,y,x);
来获取当前游标的位置,例如
int y,x;
getyx(stdscr,y,x);
printw("y:%d--x:%d",y,x);
请注意,我们将得到y,x而不是&y,&x
或者使用mvprintw(y,x,str,....);
函数来直接在传入位置打印字符,这相当于 move(y,x);printw(str);
窗口
创建窗口
我们使用以下代码来创建一个窗口并且生成一个填充窗口的边框(box):
#include <bits/stdc++.h>
#include <ncurses.h>
int main(){
initscr();
int height,width,start_y,start_x;
height = width = 10;
start_y = start_x = 5;
WINDOW* win = newwin(height,width,start_y,start_x);
refresh();
box(win,0,0);
wrefresh(win);
getch();
endwin();
return 0;
}
我们将得到如下效果:
WINDOW* win = newwin(height,width,start_y,start_x);
请注意,我们的窗口是一个指针变量并需要用newwin()
函数来创建窗口对象,函数里的参数都是不可少的
我们可以使用delwin(win);
函数来销毁窗口
到这里我们就完成了本章的全部内容,关于窗口的操作内容笔者将在未来的某个时间撰写