C ++返回一行

Fel*_*nto 2 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;
}
Run Code Online (Sandbox Code Playgroud)

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

Helo,
World
Run Code Online (Sandbox Code Playgroud)

我想重新helo修复我的错字。我怎样才能做到这一点?

Phi*_*ßen 5

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

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

如果不想使用Curses之类的库,可以尝试使用ANSI转义码。根据终端,cout << "\033[F"将光标向上移动一行。

在Windows上,还有SetConsoleCursorPosition API。