C언어 출석부 구조체 작성 |공백을 포함하여 입력받기

C언어의 구조체를 사용한 학생정보를 입력받고 입력받은 학생정보를 출력하는 프로그램으로 작성해 봤습니다.

이름,번호,주소,학번의 학생정보를 입력받으면 주소 정보는 공백을 포함하여 문자열로 저장받습니다.

 

 

구조체 선언

struct info{
	char name[10];
	char nmumber[10];
	char address[20];
	int student_id;
};

struct문으로 학생 정보를 저장받을 구조체를 선언합니다.

저는 info라는 이름으로 구조체명을 지정하였습니다.

 

학생의 이름, 학생의 번호, 학생의 학번이 저장될 3가지 변수타입을 구조체에 담아주었습니다.

 

 

구조체 변수 선언

int main(){
	strcut info infos[3];
	
	return 0;
}

main함수에서 이전에 선언한 info 구조체를 main함수에서 infos라는 이름으로 사용할 수 있도록 선언하였습니다. 배열의 크기는 3으로 구조체에 있는 각 변수들을 0번째 배열부터 2번째 배열까지 총 3개의 배열을 사용할 수 있습니다.

 

 

학생 정보 입력받기

for (int i = 0; i < 3; i++){
		printf("이름:");
		scanf("%s", &infos[i].name);
		printf("번호:");
		scanf("%d", &infos[i]number);
		printf("주소 :");
		getchar()
		fgets(infos[i].nmumber, sizeof(infos[i].nmumber), stdin);
		printf("학번:");
		scanf("%d", &infos[i]student_id);
	}

학생으로부터 3번의 정보를 입력받습니다.

주소 정보는 '서울특별시 종로구 종로 51'과 같은 형태로 공백을 포함하여 입력받기 때문에 fgets함수를 사용하였습니다.

 

단 이전에 scanf를 사용하여 입력버퍼에 남아있는 개행문자를 처리하기 위해서 getchar() 함수를 사용합니다.

getchar()를 사용하면 입력버퍼에서 개행문자를 제거하고 그다음에 실행되는 fgets를 사용하여 사용자의 입력을 받을 수 있습니다.

 

 

학생 정보 출력

for (int i = 0; i < 2; i++){
		printf("이름:%d\n", infos[i].name);
		printf("번호:%s\n", infos[i].nmumber);
        printf("주소:%s\n", infos[i].address);
        printf("학번:%s\n", infos[i].student_id);
	}

 

 

전체코드

 

GitHub - Blue-B/student_info

Contribute to Blue-B/student_info development by creating an account on GitHub.

github.com

 

Top