Вопрос по console-application, visual-c++ – Как пройти строку вверх в консольных программах (C ++)

2

В C ++ я пытаюсь вернуться на строку вверх, чтобы добавить несколько символов. Вот мой код до сих пор:

cout << "\n\n\n\n\n\n\n\n\n\n\xc9\xbb\n\xc8\xbc"<<flush;
Sleep(50);

Как видите, у меня 10 символов новой строки. В моей анимации новый блок будет падать с верхней части экрана. Но я не знаю, как вернуться к этим строкам, чтобы добавить нужные мне символы. Я пытался \ r, но это ничего не делает и \ b не идет вверх по предыдущей строке. Кроме того, что именно делает flush? Я программировал на C ++ только около 2 дней, поэтому я новичок = P.

Спасибо!!!

Кристиан

Ваш Ответ

3   ответа
7

Если ваша консоль поддерживаетEscape-последовательности VT100 (большинство делают), то вы можете использоватьESC [ A, как это:

cout << "\x1b[A";

переместить курсор вверх на одну строку. Повторите по мере необходимости.

Error: User Rate Limit ExceededneedError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded 43.52.4D.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded 43.52.4D.
Error: User Rate Limit ExceededexceptError: User Rate Limit Exceeded
0

cout сначала будет записывать во внутренний буфер и только периодически выводить его на экран, а не для каждого вставляемого символа. Это из соображений производительности.

flush говорит ему, чтобы очистить буфер сейчас и показать его на экране.

Вы должны рассмотреть библиотеку какNcurses.

4

В Windows вы можете использовать этопример

там вы создадите CreateConsoleScreenBuffer () и затем используете SetConsoleCursorPosition (console_handle, dwPosition);

Похожие вопросы