C Interview Questions and Answers

 

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");

Posted by:Richards