我试图生成随机数字在控制台上打印.我在Linux上用C编程.我希望在每个数字的一秒钟的时间间隔之后在一个地方打印所有数字.我正在使用sleep()来停止'时间间隔'.我尝试了\ b,\ r \n以及所有但都没有效果.我只想让它运行,
for (i = 0; i < 10; i++) {
printf("%d", i);
sleep(1);
printf("\b");
}
Run Code Online (Sandbox Code Playgroud)
我很绝望,请帮忙!
stdout可能是缓冲的,所以要冲洗它.
for(i=0;i<10;i++)
{
printf("%d",i);
fflush(stdout);
sleep(1);
printf("\b");
}
Run Code Online (Sandbox Code Playgroud)
最简单的答案可能是使用ncurses:
#include <ncurses.h>
int main()
{
int i;
initscr(); /* Start curses mode */
for (i=0;i<10;i++) {
mvprintw(0,0, "%d", i); /* coords 0,0 */
refresh(); /* Update screen */
sleep(1);
}
getch(); /* Wait for user input */
endwin(); /* End curses mode */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译gcc -o counter counter.c -lncurses.