2014-11-18 2 views
1

Я столкнулся с Error opening terminal: unknown. с ncurses и Eclipse Luna.eclipse ncurses и xterm, напечатанные неизвестные символы

Установленный 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; 
} 

Что эти символы? И как их удалить?

+0

Вы забыли задать свой вопрос. –

+0

@ н.м .: Я думал, что это достаточно ясно. Добавлен. – mrdaliri

+0

, скорее всего, проблема заключается в том, что xterm - это не тот терминал, на который вы должны писать. – user3629249

ответ

1

Эти символы - это то, что initscr() выходов, чтобы выполнить свою работу.

Терминал не должен показывать эти символы и интерпретировать их особым образом. Поскольку консоль Eclipse не является терминалом, она не имеет ни малейшего представления.

Если вы хотите, чтобы ваша программа работала как на терминалах, так и на не-терминалах, вам необходимо проверить, является ли ваш стандартный вывод терминалом, и избегать использования ncurses -специфических функций, если это не так. См. man isatty.

Если вам нужна только ваша программа для работы в терминалах, просто не используйте консоль Eclipse. См. this question and its answer для инструкций по настройке.

Смежные вопросы