要讀取結構體數組中的數據,可以使用循環遍歷結構體數組的每個元素,并分別讀取每個結構體的成員變量的值。
以下是一個示例代碼:
#include <stdio.h>
// 定義結構體
typedef struct {
int id;
char name[20];
} Student;
int main() {
int n;
printf("請輸入學生人數:");
scanf("%d", &n);
// 聲明并初始化結構體數組
Student students[n];
// 讀取結構體數組的數據
for (int i = 0; i < n; i++) {
printf("請輸入第 %d 個學生的學號:", i + 1);
scanf("%d", &students[i].id);
printf("請輸入第 %d 個學生的姓名:", i + 1);
scanf("%s", students[i].name);
}
// 打印結構體數組的數據
printf("學生信息如下:\n");
for (int i = 0; i < n; i++) {
printf("學號:%d,姓名:%s\n", students[i].id, students[i].name);
}
return 0;
}
上述代碼中,首先要讀取學生的人數,然后根據人數動態聲明一個結構體數組。接下來使用循環遍歷結構體數組的每個元素,分別讀取每個學生的學號和姓名,并保存到結構體的成員變量中。最后,再次使用循環遍歷結構體數組,打印出每個學生的學號和姓名。
注意,在這個示例中,使用了動態聲明結構體數組的方式,這要求編譯器支持C99標準。如果編譯器不支持C99標準,可以使用靜態聲明結構體數組的方式,即在聲明結構體數組時指定固定的大小,如Student students[100];
。