我正在编写一个多行系统,如下所示:
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 https://en.wikipedia.org/wiki/Curses_%28programming_library%29, 你可以试试ANSI 转义码 https://en.wikipedia.org/wiki/ANSI_escape_code。根据终端的不同,cout << "\033[F"
会将光标向上移动一行。
在 Windows 上,还有设置控制台光标位置 https://stackoverflow.com/q/15770853/783510 API.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)