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 に答える