Answers

Question and Answer:

  Home  C Programming

⟩ How can I display a percentage-done indication that updates itself in place, or show one of those twirling baton progress indicators?

These simple things, at least, you can do fairly portably. Printing the character 'r' will usually give you a carriage return without a line feed, so that you can overwrite the current line. The character 'b' is a backspace, and will usually move the cursor one position to the left.

Using these characters, you can print a percentage-done indicator:

for(i = 0; i < lotsa; i++) {

printf("r%3d%%", (int)(100L * i / lotsa));

fflush(stdout);

do_timeconsuming_work();

}

printf("ndone.n");

or a baton:

printf("working: ");

for(i = 0; i < lotsa; i++) {

printf("%cb", "|/-"[i%4]);

fflush(stdout);

do_timeconsuming_work();

}

printf("done.n");

 141 views

More Questions for you: