c语言是不是只有字符数组可以整体scanf赋值
时间: 2023-07-27 13:27:50 浏览: 97
不是,C语言中不仅字符数组可以整体`scanf()`赋值,其他类型的数组也可以。只要使用合适的格式化字符串,就可以一次性读入多个值,并将它们赋给数组的相应元素。
下面是一个示例代码,它从键盘读入一个包含多个浮点数的字符串,并将它们存储在浮点数数组`arr`中:
```c
#include <stdio.h>
#define N 5
int main()
{
float arr[N];
char buf[100];
int i;
printf("请输入%d个浮点数,用空格或逗号隔开:", N);
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%f,%f,%f,%f,%f", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);
printf("输入的数组为:\n");
for (i = 0; i < N; i++) {
printf("%f ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,程序使用`fgets()`函数从标准输入读入一行字符串,然后使用`sscanf()`函数从字符串中解析出5个浮点数,并将它们依次赋给浮点数数组`arr`的相应元素。需要注意的是,在格式化字符串中使用了逗号分隔符,因为在输入时使用了逗号分隔符。如果输入时使用空格分隔符,那么格式化字符串中应该使用空格分隔符。
总之,只要使用合适的格式化字符串,就可以实现对任何类型的数组进行整体`scanf()`赋值。
阅读全文