C语言里,如何让scanf函数忽略用户输入的空格和回车
时间: 2024-10-13 12:09:44 浏览: 37
调用scanf函数输入多个数据-C语言教程——浙大
在C语言中,`scanf`函数默认会读取并匹配空白字符,如空格、制表符和换行符。如果你只想读取非空白字符,可以使用`fgets`函数配合`sscanf`函数来实现。`fgets`用于从标准输入流读取一行字符串,包括空格;然后,`sscanf`解析这个字符串,跳过空白。
下面是一个示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 100
int main() {
char input[MAX_LINE_LENGTH];
// 使用 fgets 获取一整行,包括空格
if (fgets(input, sizeof(input), stdin) == NULL) {
printf("Error reading from standard input.\n");
return 1;
}
// 使用 sscanf 分析输入,忽略空格
int num;
sscanf(input, "%d", &num); // 只读取数字,忽略其他字符
printf("Read number: %d\n", num);
return 0;
}
```
在这个例子中,`%d`是一个格式说明符,告诉`sscanf`只匹配一个整数,并跳过前面的任何空白字符。注意,`fgets`可能会留下换行符,所以在实际应用中,可能需要额外处理或清理输入。
阅读全文