Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

c++ - How to use carriage return with multiple line?

When I want to print out another text in the same line, I can do this:

int i = 0;
string text = "Paragraph ";
while (i < 10) {
    if (clock() % CLOCKS_PER_SEC == 0) {
        cout << text << i + 1 << "
";
        cout.flush();
        i++;
    }
}

But, how I can I do this with multiple line? I want to retain a paragraph as a whole in its initial position in terminal. If I change text with a string that contains paragraph with some newline characters, it prints another new block of paragraph below the last printed.

How can I retain it's position?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your question isn't very clear, but I'm going to assume you want to know how to overwrite text in places other than the current line.

Standard C++ doesn't give you this capability. You will have to use OS-specific functionality to place the cursor at an arbitrary place of the console.

Under Unix-like systems you will generally use ANSI escape sequences

Under Windows you're best served by the console manipulation functions, in particular SetConsoleCursorPosition. Look here for more console functions.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...