c语言如何输入未知数量的整数
时间: 2024-11-20 17:43:08 浏览: 20
在C语言中,如果需要输入未知数量的整数,通常可以采用动态内存分配和循环的方式。下面是一个简单的示例,使用`fgets()`函数结合`sscanf()`解析用户输入:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[100]; // 存储用户输入的字符串
int num, *arr = NULL; // 初始化数组指针
// 读取一个数字
printf("请输入一个整数(输入空行结束): ");
fgets(input, sizeof(input), stdin);
while (input[0] != '\n') { // 遍历直到遇到换行符
num = 0;
arr = realloc(arr, (sizeof(int) + 1) * (strlen(input) == 0 ? 1 : size_t(arr ? arr - input : 1))); // 动态扩容
sscanf(input, "%d", &num); // 解析输入到整数
*(arr++) = num; // 将整数存入数组并移动指针
printf("请输入另一个整数(输入空行结束): ");
fgets(input, sizeof(input), stdin);
}
// 结束输入后释放内存
if (arr != NULL && arr[-1] == '\0') arr--; // 移除最后一个'\n'
free(arr);
return 0;
}
```
在这个程序中,用户可以继续输入整数,直到按下回车且不输入内容(即按下回车后的空白行)。注意每次输入前都要检查当前的数组大小,并相应地调整。
阅读全文