2014-01-27 49 views
1

我需要从键盘使用控制台读取一行到std::string str。 现在我使用std::getline(std::cin, str);函数。阅读std ::字符串行(用空格和特殊键支持)

但是这种方法对于箭头键和其他特殊键(exep Backspace和Enter)有效。

我希望C++已经有这个漂亮的解决方案(但我不能谷歌它),不是吗?

如果此解决方案支持“命令历史记录”(上/下箭头键为prev/next命令),它将是完美的。

如果重要,我使用ubuntu 12.10。

回答

3

我想你会想使用readline库(http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html),它有很多有用的功能,包括历史支持。

+0

下面是一个简单的例子,让你开始:http://web.cs.swarthmore.edu/~newhall/unixhelp/C_cool_utils.html#readline – TimmyJ

+0

谢谢!好的图书馆。现在我认为'std :: string'是肥皂泡。因为线条是字符串的基本功能之一(在我看来)=( –