我是 C++ 新手。我正在做一个项目,我需要通过控制台从用户那里读取大部分整数。为了避免有人输入非数字字符,我考虑将输入读取为字符串,检查其中只有数字,然后将其转换为整数。我创建了一个函数,因为我需要多次检查整数:
bool isanInt(int *y){
string z;
int x;
getline(cin,z);
for (int n=0; n < z.length(); n++) {
if(!((z[n] >= '0' && z[n] <= '9') || z[n] == ' ') ){
cout << "That is not a valid input!" << endl;
return false;
}
}
istringstream convert(z); //converting the string to integer
convert >> x;
*y = x;
return true;
}
当我需要用户输入一个整数时,我会调用这个函数。但是由于某种原因,当我调用这个函数时,程序不会等待输入,它会立即跳转到处理空字符串的 for 循环。有什么想法吗?谢谢你的帮助。