我正在尝试学习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
我做错了什么?
答案 0 :(得分:2)
根据ncurses文档:
整数变量LINES和COLS在&lt; curses.h&gt;中定义。还会 用屏幕大小的initscr填写。
因此,在调用initscr
之前,它们可能只是0。
答案 1 :(得分:0)
是的,如 Chris Dodd 所述,在调用initscr()
之前,其值将为0。但是在调用initscr()
之后,其值将是行和列屏幕stdscr
的位置。 getmaxyx(stdscr, row, col)
也可以将这些值分配给整数row
和col
。