C ++: Можно ли стереть то, что уже было напечатано на терминале? - PullRequest
0 голосов
/ 29 марта 2020

Я работаю над текстовой приключенческой игрой:

#include <string>
#include <cstdio>


using namespace std;

int main (){
cout << "Welcome to text adventure! Do you want to play? (y/n)\n";

char ansr;
cin >> ansr;

while (ansr == 'y' || 'Y'){
    cout << string (50, '\b');
    cout << "Okay, let's go!";
    return 0;
}
}

Это работает хорошо, но для удобства чтения я хочу новый текст "хорошо, давайте go!" появляться в верхней части экрана. Это часть образовательного задания, но мне очень нравится моя идея моей текстовой приключенческой игры. system(CLS); Работает, но я читал, что с этим связаны некоторые серьезные проблемы с переносимостью, поскольку он может работать только с windows.

. Я пытался заменить \n на \b и он ничего не делает, потому что \b предназначен только для того, чтобы стереть то, что печатает консоль. Мне интересно, есть ли способ, что более ранние вещи были напечатаны на консоли. Если нет, есть ли другие альтернативы system(CLS), кроме того, что есть у меня, чтобы новый текст мог быть увеличен до верхней части экрана?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...