我正在大学学习C,并且必须为它编写几个代码。
我想为用户输入验证(scanf())编写一个函数。它应该是一个单独的函数(不在main()中)并具有某些属性。例如。: 用户输入必须是整数且介于0和100之间。 用户输入必须是素数。 用户输入必须是特定字母。 ... ... 我已经有了这样的东西,但问题是,它非常具体,我必须每次都为特定的代码重写它。
while (scanf("%d", &n) != 1 || n < 1 || n > 100) {
while (getchar() != '\n');
printf("Wrong Input !\n\nn:");
}
我想对每个不同要求的几个“程序”使用相同的功能。此外,我希望能够为该功能添加新的“参数要求”。 帮助真的很感激!
答案 0 :(得分:0)
您可以传递执行特定工作的验证功能。请参阅以下示例代码以说明此方法。希望它有所帮助。
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);
}