c 语言如何循环输入 5,1,1 要一个一个读取并且输入有逗号
时间: 2024-10-20 15:13:43 浏览: 14
在 C 语言中,你可以使用 `scanf` 函数结合循环来逐个读取用户输入的数字,并处理包含逗号的情况。下面是一个示例程序,它提示用户输入一系列以逗号分隔的整数:
```c
#include <stdio.h>
int main() {
int num[3], i = 0;
char input[100]; // 存储输入字符串
printf("请输入以逗号分隔的三个整数:");
// 读取用户输入直到遇到换行符
fgets(input, sizeof(input), stdin);
// 去掉输入字符串首尾的空格和换行符
input[strcspn(input, "\n")] = '\0'; // 移除尾部换行符
input[strlen(input) - 1] = '\0'; // 可能还有空格,移除最后一个字符
// 使用 strtok 函数按逗号分割输入
char *token = strtok(input, ",");
while (token != NULL && i < 3) {
// 将当前 token 转换为整数并存储到数组中
num[i] = atoi(token);
i++;
token = strtok(NULL, ","); // 继续查找下一个逗号
}
// 输出结果
for (i = 0; i < 3; i++) {
printf("%d ", num[i]);
}
return 0;
}
```
在这个例子中,我们首先读取用户的输入作为字符串,然后通过 `strtok` 函数将其拆分成单个元素。每找到一个整数就转换为 `int` 类型并存入数组,直到读取完三个数值。
阅读全文