求救!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();}[解决办法]
比较一下两种终端类型下 stty -a的结果,基本可以分析出原因来。
[解决办法]
这个是有可能的。
请参考《beginning with linux programming》一书。
[解决办法]
这个不懂,可以试试比较xterm和ansi终端的不同看能不能分析原因。如果两种终端采用不同的字符集的话,可能会影响的。
[解决办法]
直接将程序结果重定向到一个文件,对照一下ansi的控制码,可能可以看出问题的
[解决办法]
curses函数库和控制台终端定义的结合出现偏差时,使用curse函数库程序的输出结果就会有些问题。
从一本叫 Linux程序设计 的书上看到的,正好今天看到这个部分,呵呵