0

我需要一个函数来从用户那里获取字符串输入。我不想使用cin,因为我只想用 return ( \r) 来标记输入的结束。我做了以下事情:

std::string GetInput()
{
  std::string str = "\0";
  char ch;
  do
  {
    ch = getch();
    if(ch) str += ch;
    putch(ch);
  }
  while (ch!='\r');
  return str;
}

它可以工作,但我对它不太满意,因为它不完全支持 Backspace 和 Right/Left Arrow 键盘按钮。我的问题是,如何在不使用 的情况下从用户那里获得输入cin,同时给用户一种类似cin的感觉(全键盘支持)?

4

1 回答 1

2

您实际上可以使用cin

std::string GetInput()
{
  std::string input;
  if (!std::getline(cin, input)) {
    // handle error here
  }
  return input;
}
于 2013-06-01T08:31:59.810 回答