c - printw() 在 while 循环中不起作用

标签 c ncurses

出于某种原因,每当我尝试打印一个字符串时,当我进入一个 while 循环时它不会刷新屏幕……我做错了什么?

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

int main()
{

    initscr(); /* Start curses mode */
    while(1);
    {
        printw("hi there");
        refresh();
        sleep(1);
    }
    endwin(); /* End curses mode */
    return 0;
}

它只是卡在终端上,什么都不做。它确实在运行,因为我的 cpu 加速但没有任何显示。如果我删除 while 循环,它就可以正常工作。仅供引用,我正在对其进行测试,因为计时器会出现在这里并将显示不断变化的其他数据。

最佳答案

这是因为在 while 条件的末尾有一个分号:

while(1);  //  <---  Remove the ;

任何体面的编译器都应该就此警告您。

关于c - printw() 在 while 循环中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281542/

相关文章:

c++ - 将 ncurses 键事件转发到 X11 窗口

c++ - 操作系统原生 2D API 与 OpenGL

iphone - C 中的快速 4x4 矩阵乘法

c - 为什么在 C 中使用 printf 时字符串会打印两次?

Python 诅咒困境

c - 行与列之间的端子间距

c - 父进程无限循环使用fork()后不更新屏幕

c - 崩溃期间未捕获 SIGSEGV 信号

c - 从字符串中获取 double 值

C - 有没有办法从我的窗口中删除 mvwprintw? (Ncurses)