实时更新控制台中的字符串内容

时间:2018-06-13 21:20:10

标签: c++

我刚进入c ++,我在做下一件事时遇到了一些问题:

我有下一个“设置”:

string curent = "None";

int main()
{
    cout << "Welcome , etc";
    cout << "Current Mode: " << curent;
    while (true) {
       if (GetKeyState(VK_NUMPAD0)) 
       {
           string curent = "Mode 1";
       }
       // more modes
    }
}

我如何拥有

  

当前模式:无

cout会根据主内部的IF自动更新吗?(如果按下NUMPAD 0,则应该成为模式1)。

我想使用其他东西而不是清除所有控制台并重写所有内容,我只希望最后一行更新。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用\b将插入符号移动到当前行的上一个符号,然后在上一个符号的顶部打印新模式。

以下是一个例子:

std::cout << "Mode: foo";
// Terminal shows
// Mode: foo
//          ^

std::cout << "\b\b\b";
// Terminal shows
// Mode: foo
//       ^

std::cout << "bar";
// Terminal shows
// Mode: bar
//          ^