我有一个代码,我在其中读入了一个向量。
vector <int> v;
for (int i; cin >> i;){
v.push_back(i);
}
要结束循环,用户必须输入'/'。我该怎么办? 换句话说,如果用户将一个char输入到int中,我该如何使用输入?
答案 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