Я столкнулся с Error opening terminal: unknown.
с ncurses
и Затмение Луны.
Так установлено xterm
и добавить TERM=xterm
в Конфигурации запуска / отладки> Среда.
Теперь, когда я запускаю следующее простое приложение «Hello World», в консоли Eclipse выводятся странные символы:
Код:
#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;
}
Что это за персонажи? И как их убрать?
Эти персонажи что initscr()
выходы делать свое дело.
Терминал знает, что не нужно показывать эти символы и интерпретировать их особым образом. Поскольку консоль Eclipse не является терминалом, она не имеет ни малейшего представления.
Если вы хотите, чтобы ваша программа работала как на терминалах, так и на нетерминалах, вам необходимо проверить, является ли ваш стандартный вывод терминалом, и избегать использования ncurses
-специфичные функции, если это не так. Увидеть man isatty
,
Если вам нужна только ваша программа для работы в терминалах, просто не используйте консоль Eclipse. Увидеть этот вопрос и его ответ для инструкций по настройке.