编写函数来获取字符串输入

时间:2013-06-01 08:28:19

标签: c++ string input

我需要一个函数来从用户那里获取字符串输入。我不想使用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般的感觉(全键盘支持)?

1 个答案:

答案 0 :(得分:2)

您实际上可以使用cin

std::string GetInput()
{
  std::string input;
  if (!std::getline(cin, input)) {
    // handle error here
  }
  return input;
}