我需要一个函数来从用户那里获取字符串输入。我不想使用cin
,因为我只想返回(\r
)来标记输入的结束。我做了以下事情:
std::string GetInput()
{
std::string str = "\0";
char ch;
do
{
ch = getch();
if(ch) str += ch;
putch(ch);
}
while (ch!='\r');
return str;
}
它可以工作,但我对它不太满意,因为它不完全支持退格键和向右/向左箭头键盘按钮。我的问题是,如何在不使用cin
的情况下从用户那里获得输入,同时为用户提供cin
般的感觉(全键盘支持)?
答案 0 :(得分:2)
您实际上可以使用cin
:
std::string GetInput()
{
std::string input;
if (!std::getline(cin, input)) {
// handle error here
}
return input;
}