본문 바로가기

C 언어/임베디드 C

구조체의 배열

// 5명의 학생의 정보를 입력받아 "d9-4.dat" 파일에 기록하는 프로그램

#include <stdio.h>
#include <process.h>    //exit()함수

typedef struct
{
  char name[15];
  char country[20];
  int age;
}STUDENT;

int main()
{
  FILE *fp;
  STUDENT st[5];
  int i;
  
  if((fp = fopen("d9-4.dat""w")) == NULL)
  {
    printf("Flie open error...\n");
    exit(-1);
  }

  for(i=0; i<5; i++)
  {
    printf("Enter name & country & age : ");
    //메모리저장
    scanf("%s %s %d", st[i].name, st[i].country, &st[i].age);
    //파일저장
    fprintf(fp, "%s %s %d\n", st[i].name, st[i].country, st[i].age); 
  }

  fclose(fp);

  return 0;
}



일반적으로 구조체는 독립적으로 사용되기보다는 구조체의 배열이나 연결리스트의 노드로 많이 사용된다.
만약 100명의 학생에 관한 정보를 관리하는 경우 학생 구조체를 정의하고 100개의 학생 구조체 변수를
사용하는 것보다 원소가 100개인 구조체의 배열로 다루는 것이 편리하다.

구조체 배열에서 각 원소의 멤버를 접근할 때는 배열의 색인 뒤에 도트를 붙인다.