Я беру команду и хочу сохранить ее как вектор символов.
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.
Получить ввод в строку, затем итератор это? или просто использовать 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);
}
Я бы использовал это:
cout << "Reservations>>";
string str;
getline (std::cin, str);
vector<char> command(str.begin(), str.end());
getline
по умолчанию использует \r
а также \n
в качестве разделителей, по сравнению с cin
которые также используют пространство. std::string
самый распространенный char
контейнер, так что я уверен, что вам не нужно преобразовывать его в vector
, но я добавил самый быстрый способ, как это сделать.