这段代码如何处理输入非数字的情况?
时间: 2024-09-28 19:07:21 浏览: 35
这段代码没有直接处理用户输入非数字的情况,如果用户输入非数字字符,`scanf()` 函数将会失败,并将包含错误值。为了避免这种情况,通常会在获取用户输入后检查 `scanf()` 的返回值,看是否成功读取了数据:
```c
#include <stdio.h>
#include <stdlib.h> // 引入这个头文件,因为有errno
int main() {
int length, width;
// 检查输入合法性
if (scanf("%d %d", &length, &width) != 2) { // 返回值总是2,因为有2个输入
perror("Invalid input"); // 如果发生错误,打印错误信息
exit(EXIT_FAILURE); // 结束程序并返回错误码
}
// ... 然后继续计算和输出面积...
}
```
这里我们通过检查 `scanf()` 的返回值,如果小于预期(2),说明输入有问题,就会捕获并处理错误。记得引入 `<stdlib.h>` 来使用 `perror()` 和 `EXIT_FAILURE`。
阅读全文