我有一个问题,我需要清洁部分屏幕而不是全部。
例如:
#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;
}
假设用户在城市变量中输入一个数字,我可以创建一个条件如果要清理屏幕,但我不想清理所有内容,只有最后一部分。
答案 0 :(得分:0)
您无法从C ++更改unix-shell ui (实际上你可以相信我,你不想处理它)
如果你想用C / C ++编写一些UI,请检查GTK。
对于您的特定情况,我猜清洁所有屏幕并重新绘制一些文本就足够了。
答案 1 :(得分:0)
您可以通过打印字符'\r'
来清除大多数终端中的最后一行。这是ASCII回车,历史上使电传打字机的头部向左移动。
另一种选择是使用'\L'
清除屏幕,然后重新打印要留在屏幕上的部分。除非你连接速度很慢,否则不会有明显的闪烁。