c++macosterminalstdoutoutput-formatting

Rewinding std::cout to go back to the beginning of a line


I'm writing a command-line tool for Mac OS X that processes a bunch of files. I would like to show the user the current file being processed, but do not want a bazillion files polluting the terminal window.

Instead I would like to use a single line to output the file path, then reuse that line for the next file. Is there a character (or some other code) to output to std::cout to accomplish this?

Also, if I wanted to re-target this tool for Windows, would the solution be the same for both platforms?


Solution

  • "\r" should work for both windows and Mac OS X.

    Something like:

    std::cout << "will not see this\rwill see this" << std::flush;
    std::cout << std::endl; // all done