C ++回过头来

时间:2017-07-16 23:29:41

标签: c++ c++11

我正在编写多行系统,如下所示:

string readLines(string x)
{
    string temp = "a";
    vector<string> lines(0);
    string result;

    while (1)
    {
        cout << x;
        getline(cin, temp)

        if(temp != "")
        {
            result = result + "\n" + temp;
            lines.push_back(temp);
        }
        else
            break;
    }
    return result;
}

工作正常,但我希望能够编辑上一行,例如,我输入的内容如下:

Helo,
World

我想回到helo并修复我的拼写错误。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

没有可移植的方法可以在C ++中返回一行。

您可以通过打印\r转到该行的开头,但转到上一行需要平台相关代码。

如果您不想使用Curses等库,可以尝试使用ANSI escape codes。根据终端,cout << "\033[F"会将光标向上移动一行。

在Windows上,还有SetConsoleCursorPosition API。