ncurses LINES和COLS是0?

时间:2015-01-18 04:04:51

标签: c ncurses

我正在尝试学习ncurses但是遇到了一个奇怪的错误。 LINES和COLS似乎设置为0,或者设置为非int的东西:

我的代码的相关部分:

#include <stdio.h>
#include <ncurses.h>

[...]

printf("%d\n%d\n%d\n",rand(),LINES,COLS);
blk[i].pos[0] = (int)(rand()/LINES);
blk[i].pos[1] = (int)(rand()/COLS);

输出:

1556162876
0
0
Floating point exception

我做错了什么?

2 个答案:

答案 0 :(得分:2)

根据ncurses文档:

  

整数变量LINES和COLS在&lt; curses.h&gt;中定义。还会          用屏幕大小的initscr填写。

因此,在调用initscr之前,它们可能只是0。

答案 1 :(得分:0)

是的,如 Chris Dodd 所述,在调用initscr()之前,其值将为0。但是在调用initscr()之后,其值将是行和列屏幕stdscr的位置。 getmaxyx(stdscr, row, col)也可以将这些值分配给整数rowcol