读书人

!curses为何在ANSI终端下显示不正常

发布时间: 2012-03-22 17:43:57 作者: rapoo

求救!curses为何在ANSI终端下显示不正常?
最近写了个实时监控的程序,我的SecureCRT设置成了xterm类型终端,然后登录并执行监控程序后,显示正常;如果设置成了ansi终端,执行程序后屏幕打印就很乱!后来我试了一个最简单的程序:

C/C++ code
#include <unistd.h>#include <ncurses.h>int main(){        initscr();        clear();        mvprintw(0,0,"abcdefg");        mvprintw(1,0,"123456789");        mvprintw(9,0,"iiiiiiiiii");        refresh();        sleep(2);        endwin();}
这个程序在xterm终端下显示正常,但是在ansi终端下就显示不出来那行iiiiiiiii。我已经调了好几天了,一直找不到问题,请各位高手一定帮忙,小弟先行谢过!

[解决办法]
比较一下两种终端类型下 stty -a的结果,基本可以分析出原因来。
[解决办法]
这个是有可能的。
请参考《beginning with linux programming》一书。

[解决办法]
这个不懂,可以试试比较xterm和ansi终端的不同看能不能分析原因。如果两种终端采用不同的字符集的话,可能会影响的。
[解决办法]
直接将程序结果重定向到一个文件,对照一下ansi的控制码,可能可以看出问题的

[解决办法]
curses函数库和控制台终端定义的结合出现偏差时,使用curse函数库程序的输出结果就会有些问题。
从一本叫 Linux程序设计 的书上看到的,正好今天看到这个部分,呵呵

读书人网 >C语言

热点推荐