gpt4 book ai didi

将参数作为字符串调用不起作用 - C

转载 作者:行者123 更新时间:2023-11-30 20:35:00 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数将接受输入并在有效时返回它

即使输入正确,该函数也会不断打印错误消息。

如何传递参数进行验证而不预先将其评估为 bool 值?

#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;
}

最佳答案

而不是 if (argument)您需要实际将 bool 条件放在那里: if (input>64&&...&&input<123)当您这样做时,verify函数不再需要接受参数。

C 不支持您尝试将条件作为参数传递的操作。恰好该表达式的类型与 char[] 兼容。类型verify需要;这就是您的代码能够编译的原因。 C 绝不会知道您想要传递 verify 的条件表达式。评估。它只是不是那样工作的。

关于将参数作为字符串调用不起作用 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40699637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com