ANSI C ne permet-il pas d’imprimer chaque caractère au même endroit après une période de temps déterminée?

J’essaie de générer des nombres aléatoires à imprimer sur la console. Je programme en C sur Linux. Je voulais imprimer tous les numéros en un seul endroit après un intervalle de temps d’une seconde pour chaque numéro. J’utilise sleep () pour arrêter un “intervalle de temps”. J’ai essayé \ b, \ r et tout sauf aucun ne fonctionne. Je voulais juste que ça fonctionne,

for(i=0;i<10;i++) { printf("%d",i); sleep(1); printf("\b"); } 

Je suis désespéré, aidez s’il vous plaît!

stdout est probablement tamponné, alors videz-le.

 for(i=0;i<10;i++) { printf("%d",i); fflush(stdout); sleep(1); printf("\b"); } 

La réponse la plus simple est probablement d’utiliser ncurses :

 #include  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; } 

Comstackz avec gcc -o counter counter.c -lncurses .