Взятие в виде вектора символов из командной строки

Я беру команду и хочу сохранить ее как вектор символов.

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.

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);
}
0

Другие решения

Я бы использовал это:

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

getline по умолчанию использует \r а также \n в качестве разделителей, по сравнению с cin которые также используют пространство. std::string самый распространенный char контейнер, так что я уверен, что вам не нужно преобразовывать его в vector, но я добавил самый быстрый способ, как это сделать.

0

По вопросам рекламы [email protected]