如果用户在char中输入char,我该如何使用输入?

时间:2017-06-07 16:54:49

标签: c++ error-handling cin

我有一个代码,我在其中读入了一个向量。

vector <int> v;

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

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

2 个答案:

答案 0 :(得分:0)

您只需要从流中读取单个字符(或字符串)。然后确定它是否真的是一个数字。如果是,请转换它(例如,使用std::stoi)。如果没有,请检查它是否退出&#34;退出&#34;符号,如果是这样,继续你需要做的其他事情。如果它是其他内容,您通常会报告错误,如果它意图以交互方式使用,则可能会为用户提供另一个输入正确内容的机会。

答案 1 :(得分:0)

使用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