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

标签 c linux eclipse gcc ncurses

在 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 控制台中“构建项目”命令中提供的编译器选项:

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 问题的出现是由于 Eclipse 向应用程序提供的终端。 NCurses 无法识别它。我不使用 Eclipse,所以我不知道该怎么做,但你应该搜索一些允许你在完整终端(如 xterm、Konsole、Gnome 终端等)中运行应用程序的设置。

关于c - ncurses 基本示例 - 在调试中我得到 : "Error opening terminal: unknown.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195203/

相关文章:

c - c中的按位运算符和移位问题

linux - 通过 Bash Shell 脚本从 url 列表中提取父域名

java - Eclipse EE IDE 中的 Servlet 和 JSP 与 MYSQL 数据库的连接

Java - 访问在不同的 'if/else if' 语句中创建的对象?

java - 在控制台中获取没有 ANSI 颜色序列的 log4j 的颜色日志

c - 在 C 中,指定 2.0f 是否与 2.000000f 相同?

c - 解析文件时的 fscanf 格式字符串

c++ - 为什么 windows.h 禁用包警告?

linux - 如何监控 Linux UDP 缓冲区可用空间?

c - 在 C 中记录错误