[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]


    Search the Q&A Archives


Hello is there any way to make a printf/cout updating??I...

<< Back to: comp.lang.c Answers to Frequently Asked Questions (FAQ List)

Question by dager
Submitted on 4/21/2004
Related FAQ: comp.lang.c Answers to Frequently Asked Questions (FAQ List)
Rating: Rate this question: Vote
Hello
is there any way to make a printf/cout
updating??I mean with

for(i=10;i<0;i--) cout<<"number = "<<i<<endl;

having only one line with `i` changing
like a countdown
instead of ten lines?
thanks a lot


Answer by Adrian
Submitted on 7/6/2004
Rating:  Rate this answer: Vote
Replace

    << endl;

by

    << " \r" << flush;

endl prints a newline character so that the next line of output appears on the following line of the screen. "\r" is a carriage return, which does not start a new line but simply returns to the beginning of the current line.

flush assures that the printed line is actually displayed on the screen (endl has this already built in).

There is an additional space character in order to overwrite trailing zeroes when your numbers decrease and have less decimal places. Or you may want to use

    << setw(2) << i

(or whatever width you like) in order to print the value of i right-justified (include <iomanip> for that).

In C, you could use

    printf("...\r");
    fflush(stdout);

Flushing the output to the screen is needed here, too.

Keep in mind that it might depend on your type of terminal whether this code will work as expected or not.

 

Your answer will be published for anyone to see and rate.  Your answer will not be displayed immediately.  If you'd like to get expert points and benefit from positive ratings, please create a new account or login into an existing account below.


Your name or nickname:
If you'd like to create a new account or access your existing account, put in your password here:
Your answer:

FAQS.ORG reserves the right to edit your answer as to improve its clarity.  By submitting your answer you authorize FAQS.ORG to publish your answer on the WWW without any restrictions. You agree to hold harmless and indemnify FAQS.ORG against any claims, costs, or damages resulting from publishing your answer.

 

FAQS.ORG makes no guarantees as to the accuracy of the posts. Each post is the personal opinion of the poster. These posts are not intended to substitute for medical, tax, legal, investment, accounting, or other professional advice. FAQS.ORG does not endorse any opinion or any product or service mentioned mentioned in these posts.

 

<< Back to: comp.lang.c Answers to Frequently Asked Questions (FAQ List)


[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]

© 2008 FAQS.ORG. All rights reserved.