在编写给用户,让用户填写一些数字或者信息时,应该对需要输入的内容的格式进行判断,要求输入合理的内容,比如:要求输入数字,就不能输入字母;要求输入年龄,那输入的数字就不能是负数等等。
那么,要解决这种问题,就应该加强程序的严谨性。
以下是一些解决示例:
#include <stdio.h>
int main(void){
u_int32_t age; //u_int32_t 也可以用unsigned
printf("Please input your age: \n");
int age_input_result = scanf("%3u", &age);
if (age_input_result != 1) {
printf("输入的数字不合法! 必须是小于三位的正整数!\n");
}
else {
printf("age = %u\n", age);
}
return 0;
}
由于年龄只能是数字且不能为负数,所以定义的age变量类型为u_int32_t,也可以是其他类型,当输入内容前三个是数字后面全输入字母,最后输出的也是前三个数字,那么如果输入前几位是字母,那就不符合条件。(当然,根据常识判断,年龄不会超过四位,应用其他的条件时,也可以对输入的内容做出相应的限制调整)
这种思想很重要!!