Basic and Advance C Question:
Download Job Interview Questions and Answers PDF
How can I display a percentage-done indication that updates itself in place, or show one of those twirling baton progress indicators?
Answer:
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");
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");
Download C Programming Interview Questions And Answers
PDF
Previous Question | Next Question |
How can I make it pause before closing the program output window? | How can I find out if there are characters available for reading? |