eclipse ncurses和xterm,打印出未知字符

时间:2014-11-18 16:17:08

标签: c++ c eclipse ncurses xterm

我面对Error opening terminal: unknown. ncurses和Eclipse Luna。

已安装xterm并在运行/调试配置中添加TERM=xterm>环境。

现在,当我运行以下简单的“Hello World”应用程序时,Eclipse控制台中会打印一些奇怪的字符:

enter image description here

代码:

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

int main() {
    initscr();                 /* Start curses mode     */
    printw("Hello World !!!"); /* Print Hello World    */
    refresh();                 /* Print it on to the real screen */
    getch();                   /* Wait for user input */
    endwin();                  /* End curses mode    */

    return 1;
}

这些角色是什么?以及如何删除它们?

1 个答案:

答案 0 :(得分:1)

这些字符是initscr()输出的结果。

终端知道不显示这些字符并以特殊方式解释它们。由于Eclipse控制台不是终端,因此它并不是一个最微弱的想法。

如果您希望您的程序在终端和非终端中工作,您需要检查您的标准输出是否是终端,并避免使用ncurses特定功能(如果不是)。请参阅man isatty

如果您只需要您的程序在终端中工作,那么就不要使用Eclipse控制台。有关设置说明,请参阅this question and its answer