我正在尝试测试用户输入的输入,因此我的程序无法破解。我正在使用的线是:
while (check != 0){
cout << "Please enter a number 1 - 4 (area of: circle, rectangle, triangle or quit)" << endl;
cin >> response;
if ((isdigit(response)) && ((response >= 1) && (response <= 4))){
check = 0;
}
else{
cout << "You did not enter a valid digit (1 - 4)" << endl;
check = 1;
}
} // End of while loop
我要做的是检查输入是否都是一个数字(具体是整数)并且在1和4的范围内。出于某种原因,我输入的每个值都被认为是无效的。我应该改变什么或做什么来获得我想要的预期结果? (这样它将检查输入是否为整数,以及该整数是否介于1和4之间(包括1和4))。
答案 0 :(得分:1)
假设response
的类型为char
,则需要使用字符常量'1'
和'4'
,而不是整数常量1
和{{1} }}
4
答案 1 :(得分:0)
if (response >= '1' && response <= '4')
就是你所需要的。如果输入的字符在正确的范围内,则必须是数字,因此不需要isdigit
的测试。也不是多余的括号。