我正在编写一个多行系统,如下所示:
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
并修复我的拼写错误。我该怎么做?
最佳答案
在 C++ 中没有返回一行的可移植方法。
您可以通过打印 \r
转到行首, 但移动到上一行需要依赖于平台的代码。
如果不想使用像Curses 这样的库, 你可以试试ANSI escape codes .取决于终端,cout << "\033[F"
会将光标向上移动一行。
在 Windows 上,还有 SetConsoleCursorPosition API。
关于C++ 后退一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45134217/