scanf读取未知长度数组
时间: 2024-09-08 14:02:16 浏览: 57
2022.11.15问题总结.md
在C语言中,`scanf`函数通常用于读取标准输入流中的数据,它需要你提前知道将要输入的数据的数量或格式。然而,当你要读取未知长度的数组时,你可以使用循环结构来不断地读取数据,直到达到某个结束条件。一种常见的做法是使用特定的结束符来表示输入的结束。
例如,如果你想要用户输入一系列整数直到输入0,则可以使用如下代码:
```c
#include <stdio.h>
int main() {
int array[100]; // 假设数组最大长度为100
int n = 0; // 用于记录实际读取到的数据个数
printf("请输入一系列整数,输入0结束:\n");
while(1) {
scanf("%d", &array[n]);
if(array[n] == 0) {
break;
}
n++;
// 确保不会超出数组界限
if(n >= 100) {
printf("超出数组界限,请重新输入。\n");
return 1;
}
}
printf("您输入了%d个整数。\n", n);
return 0;
}
```
这段代码中,我们使用了一个循环结构来不断读取整数,直到输入为0时停止。变量`n`用来记录实际读取到的数据个数。在循环中还添加了检查,确保不会因为读取过多的数据而导致数组越界。
阅读全文