0

我正在接受一个命令,我想将它存储为一个字符向量。

int main()
{
    vector<char> command;
    cout << "Reservations>>";
    char next;
    cin >> next;
    while (next !='\n'){
        command.push_back(next);
        cin >> next;
    }
    for(int i=0; i< command.size(); i++)
        cout << command[i];
}

但是 while(next !='\n') 不起作用,因为即使我按 Enter 键,它仍然让我输入。

4

2 回答 2

1

我会用这个:

cout << "Reservations>>";
string str;
getline (std::cin, str);
vector<char> command(str.begin(), str.end());

getline作为默认用途\r\n作为分隔符,与之相比cin也使用空间。std::string是最常见的char容器,所以我确定您不需要将其转换为vector,但我添加了最快的方法,如何做到这一点。

于 2013-09-13T18:28:24.723 回答
0

把输入变成一个字符串然后迭代器呢?还是只使用 std::string 来存储命令?

int main()
{
  cout << "Reservations>>";
  std::string command;
  cin >> command;  
  std::cout << command << std::endl;

  return (0);
}

我不确定你为什么使用 std::vector 但下面的示例应该可以工作:

int main()
{
  std::vector<char> command;
  cout << "Reservations>>";
  std::string next;
  cin >> next;    
  for(size_t i = 0; i < next.size(); i++)
  {
    command.push_back(next.at(i));
  }

  for(int i=0; i< command.size(); i++)
  {
      cout << command[i];
  }

  return (0);
}
于 2013-01-28T06:01:25.120 回答