2014-01-27 76 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'是肥皂泡。因爲線條是字符串的基本功能之一(在我看來)=( –