我正在接受命令,我希望将其存储为字符矢量。
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(下一个!='\ n')不起作用,因为即使我点击了输入,它仍然让我打字。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
我会用这个:
cout << "Reservations>>";
string str;
getline (std::cin, str);
vector<char> command(str.begin(), str.end());
默认情况下, getline
使用\r
和\n
作为分隔符,与使用空格的cin
进行比较。 std::string
是最常见的char
容器,所以我确定您不需要将其转换为vector
,但我添加了最快的方法,如何做到这一点