如果用户将 char 输入到 int,我该如何使用 input?

How do I use input if the user entered a char into an int?

我有一个代码,我在其中将整数读入向量。

vector <int> v;

for (int i; cin >> i;){
    v.push_back(i);
}

要结束循环,用户必须输入“/”。我该怎么做? 换句话说,如果用户将一个char输入到一个int中,我该如何使用输入?

您只需要从流中读取单个字符(或字符串)。然后确定它是否真的是一个数字。如果是,请转换它(例如,使用 std::stoi)。如果不是,请检查它是否是 "quit" 符号,如果是,请继续执行您需要做的任何其他事情。如果是其他原因,您通常会报告错误,如果要以交互方式使用,可能会再给用户一次输入正确内容的机会。

使用std::string读取字符数组,比较字符串是否等于您想要的终止序列的字符串,如果不是,则将其转换为int

std::vector <int> v;
std::string buffer;

while(true){
   std::cin >> buffer;

   if(buffer == "/") break;

   v.push_back(std::stoi(buffer));
}

注意:如果您尝试输入无法转换的字符,将会出现错误

更多参考请查看: http://en.cppreference.com/w/cpp/string/basic_string/stol