我正在用C编写一个程序,其中涉及4个选项的选择。
但是,我无法验证变量Option的值是否为1,2,3或4以外的字母或数字。当我输入字母时,它将继续循环打印语句,但不会循环输入函数,因此无法继续执行我的程序。
有人可以告诉我我的代码有什么问题吗?

int Option;

while( (Option>4) || ( isalpha(Option) ) )


{

printf("Please select a valid option from the 4 options listed above! \n");

scanf(" %d",&Option);

}

最佳答案

description for the function isalpha()指出


  在“ C”语言环境中,isalpha仅对isupper或islower为true的字符返回true。


意思就是

isalpha('4') // false
isalpha(4) // false in ASCII-based computers
           // the ASCII table assigns 4 to a control character
isalpha('A') // true
isalpha(65) // true in ASCII-based computers
            // the ASCII table assigns 65 to the symbol 'A'

关于c - 使用isalpha进行循环验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38265471/

10-11 17:05