将参数作为字符串调用不起作用-C
我正在尝试编写一个函数,它将接受一个输入,并在它有效时返回它 即使输入正确,该功能也会持续打印错误消息 如何传递参数以进行验证,而不事先将其计算为布尔值将参数作为字符串调用不起作用-C,c,input,verify,C,Input,Verify,我正在尝试编写一个函数,它将接受一个输入,并在它有效时返回它 即使输入正确,该功能也会持续打印错误消息 如何传递参数以进行验证,而不事先将其计算为布尔值 #include <stdio.h> #include <stdlib.h> #include <string.h> char verify(char argument[256]){ //function to check an input is valid char inpu
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char verify(char argument[256]){ //function to check an input is valid
char input;
while(1){
input = getchar();
while(getchar()!='\n'); //clear buffer
if(argument){
break;
}
printf("That is not a valid input. Try again: "); //error message
}
return input;
}
int main(void){
char input;
printf("Enter an alphabetical input: ");
input = verify(input>64&&input<91||input>96&&input<123); //checks to see if the ASCII value of the input corresponds to a alphabetical char
printf("Input is: %c",input);
return 0;
}
#包括
#包括
#包括
char verify(char参数[256]){//用于检查输入是否有效的函数
字符输入;
而(1){
input=getchar();
while(getchar()!='\n');//清除缓冲区
if(参数){
打破
}
printf(“这不是有效的输入。请重试:”;//错误消息
}
返回输入;
}
内部主(空){
字符输入;
printf(“按字母顺序输入:”);
input=verify(input>64&&input96&&input而不是if(参数)
您需要实际将布尔条件放在那里:if(input>64&&&input96&&input)您认为这是什么input=verify(输入>64&&input96&&inputVerify函数要求用户输入字符,直到满足参数。然后将该值分配给字符“input”。这是错误的吗?对于一个开始,输入是否有值?那么您最多只能传递一个布尔值来验证-而不是一个数组。如果没有布尔值,它将被初始化,并且用户希望在verify中向它输入一个字符。这意味着检查输入字符是否按字母顺序排列,然后将该值返回到main中的字符“input”