首先,我尝试了pdcurses36并在编译时遇到了麻烦,因此我恢复使用pdcurses34,我设法在mingw和代码块中进行了编译。我正在使用Windows 10。
因此,我编写了强制性的hello world程序,该程序起作用了,然后我添加了一个窗口,该程序就起作用了。
但是,当我用getmaxyx添加该行时,它会发出警报,然后关闭。它发出的警报是“没有当前窗口时尝试进行绘制操作”。
getmaxyx在initscr()之后,所以我看不到为什么它不起作用。我还在linux中使用过ncurses,并且相同的命令也可以正常工作。
我不明白该警报,因为getmaxyx实际上并没有绘制任何东西,但是应该获取我实际需要的控制台窗口的尺寸。
这是我的代码
#include <iostream>
#include <curses.h>
int main(){
initscr();
resize_term(200,50);
// cbreak();//Lets user use control and break
// noecho();//Stops text echoing
int height,width,start_y,start_x;
height=10;
width=80;
start_y=start_x=0;
WINDOW * win = newwin(height, width, start_y, start_x);
refresh();
box(win,0,0);
mvwprintw(win,1,1,"Text in a box");
wrefresh(win);
int ymax,xmax;
getmaxyx(stdscr,ymax,xmax);//height and width
printw("%d",ymax);
getch();
endwin();
return 0;
}