printw()不在while循环中工作

时间:2014-12-03 21:00:21

标签: 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循环,它就可以正常工作。仅供参考,我正在测试它,因为计时器将会在此处显示并且将显示正在不断变化的附加数据。

1 个答案:

答案 0 :(得分:4)

这是因为在while条件结束时你有一个分号:

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

任何体面的编译器都应该警告你。