如何清洁控制台的一部分?

时间:2016-09-15 02:24:48

标签: c++

我有一个问题,我需要清洁部分屏幕而不是全部。

例如:

#include <iostream>
using namespace std;
int main ()
{
    string name, city;
    int age;
    cout<<"Enter your name"<<endl;
    cin>>name;
    cout<<"Enter your age"<<endl;
    cin>>age;
    cout<<"Enter your city"<<endl;
    cin>>city;
    cin.get();
    cin.get();
    return 0;
}

假设用户在城市变量中输入一个数字,我可以创建一个条件如果要清理屏幕,但我不想清理所有内容,只有最后一部分。

2 个答案:

答案 0 :(得分:0)

您无法从C ++更改unix-shell ui (实际上你可以相信我,你不想处理它)

如果你想用C / C ++编写一些UI,请检查GTK。

对于您的特定情况,我猜清洁所有屏幕并重新绘制一些文本就足够了。

答案 1 :(得分:0)

您可以通过打印字符'\r'来清除大多数终端中的最后一行。这是ASCII回车,历史上使电传打字机的头部向左移动。

另一种选择是使用'\L'清除屏幕,然后重新打印要留在屏幕上的部分。除非你连接速度很慢,否则不会有明显的闪烁。