C - ncurses 基本示例 - 在调试中我得到:"Error opening terminal: unknown."



在ncurses库上做一些基本示例,我遇到了一些问题。

实际上,我没有得到我的期望(消息打印),然后进行调试,从eclipse,我得到(在控制台区域)"错误打开终端:未知。"

遵循代码:

#include <unistd.h>
#include <stdlib.h>
#include <ncurses.h>

int main() {
    initscr();
    move(5,15);
    printw("%s", "Hello world!");
    refresh();
    endwin();
    exit(EXIT_SUCCESS);
}

编译器选项,如Eclipse控制台在" build Project"命令中提供的:

make all 
Building file: ../source/Curses_01.c
Invoking: GCC C Compiler
gcc -Incurses -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"source/Curses_01.d"     -MT"source/Curses_01.d" -o"source/Curses_01.o" "../source/Curses_01.c"
Finished building: ../source/Curses_01.c
Building target: Curses_01
Invoking: GCC C Linker
gcc  -o"Curses_01"  ./source/Curses_01.o   -lcurses
Finished building target: Curses_01

提前感谢大家!

您确实打印了字符串。问题是该程序立即退出。这将清除屏幕并将其还原到以前的状态。当然,这很快就会发生,所以您看不到任何东西。

解决方案是在退出之前等待按键。您可以使用getch()

进行此操作
/* ... */
refresh();
getch();
endwin();
exit(EXIT_SUCCESS);

日食问题是由于Eclipse提交给应用程序的终端而产生的。ncurses无法识别它。我不使用Eclipse,所以我不知道该如何做到这一点,但是您应该搜索一些设置,使您可以在完整终端内运行该应用程序(例如在XTERM,KONSOLE,GNOME终端等)

相关内容

最新更新