C语言如何防止用户输入非数字字符?
时间: 2024-12-15 13:25:28 浏览: 5
在C语言中,防止用户输入非数字字符的一个常见方法是在读取用户输入之后进行验证。可以利用`isdigit()`函数或者`scanf`函数结合循环结构来实现。以下是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含isdigit函数
int main() {
char input[50];
int i = 0;
while (i < 49) { // 防止数组溢出,假设最多输入49位数字
scanf("%c", &input[i]);
if (!isdigit(input[i]) && input[i] != '\n') { // 检查是否为数字或换行符
input[i] = '\0'; // 非数字则停止读取,用'\0'终止字符串
break;
}
i++;
}
input[i] = '\0'; // 确保字符串结尾有'\0'
printf("你输入的数字是: %s\n", input);
return 0;
}
```
上述代码首先读取用户的输入,然后检查每一个字符是否为数字。如果不是,就停止读取并在该位置结束字符串。这样,如果用户输入了非数字字符,程序只会显示到那个位置为止。
阅读全文