我在大学学习C,并且必须为此编写一些代码。
我想编写一个用于用户输入验证的函数(scanf())。它应该是一个单独的函数(不在main()中)并具有某些属性。例如。:
用户输入必须是0到100之间的整数。
用户输入必须是素数。
用户输入必须是特定字母。
...
...
我已经有了类似的东西,但是问题是,它非常具体,我每次都必须为特定代码重写它。
while (scanf("%d", &n) != 1 || n < 1 || n > 100) {
while (getchar() != '\n');
printf("Wrong Input !\n\nn:");
}
我想对具有不同需求的多个“程序”使用相同的功能。我也希望能够向该功能添加新的“参数要求”。
帮助真的很感激!
最佳答案
您可以传递执行特定工作的验证功能。请参见下面的示例代码,它说明了这种方法。希望它能有所帮助。
void inputWithValidation(int *n, int(*isValidFunc)(int)) {
while (scanf("%d", n) != 1 || !isValidFunc(*n)) {
while (getchar() != '\n');
printf("Wrong Input !\n\nn:");
}
}
int isBetween10And100(int n) {
return n >= 0 && n <= 100;
}
int isPositive(int n) {
return n >= 0;
}
int main() {
int n;
inputWithValidation(&n, isBetween10And100);
inputWithValidation(&n, isPositive);
}
关于c - C:用户输入验证功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47003956/