我正在编写一个多行系统,如下所示:
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修复我的错字。我怎样才能做到这一点?
在C ++中,没有可移植的方法可以返回一行。
您可以通过打印转到行的开头\r,但移至上一行需要使用平台相关的代码。
如果不想使用Curses之类的库,可以尝试使用ANSI转义码。根据终端,cout << "\033[F"将光标向上移动一行。
在Windows上,还有SetConsoleCursorPosition API。