학생의 이름(first name), 성(last name), 나이(age), 학년(class)이 각각 다른 줄로 입력된다고 가정해 보겠습니다. 이때 C++의 구조체(struct)를 활용하여 이 모든 데이터를 읽어 들인 뒤, (age, first_name, last_name, class) 형식으로 출력하는 프로그램을 작성해야 합니다. 여기서 나이와 학년은 정수형(int), 이름과 성은 문자열(string) 타입으로 처리합니다.
예를 들어 입력이 다음과 같다면,
priyam kundu 16 10
출력 결과는 아래와 같습니다.
(16, priyam, kundu, 10)
문제 해결 접근 방법
이 문제는 다음 세 단계를 따라 해결할 수 있습니다.
구조체 정의: 문자열 타입의
first_name,last_name과 정수형 타입의age,cl을 멤버로 갖는 구조체를 정의합니다.데이터 입력: Student 타입의 객체
stud를 선언한 후, 입력값을 한 줄씩 순서대로first_name,last_name,age,cl에 저장합니다.결과 출력:
(stud.age, stud.first_name, stud.last_name, stud.cl)형식으로 학생 정보를 화면에 출력합니다.
예제 코드
아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.
#include <iostream>
using namespace std;
struct Student{
int age, cl;
string first_name, last_name;
};
int main() {
Student stud;
cin >> stud.first_name >> stud.last_name >> stud.age >> stud.cl;
cout << "(" << stud.age << ", " << stud.first_name << ", " << stud.last_name << ", " << stud.cl << ")";
}
코드 설명
위 코드에서 cin >> 연산자는 공백과 줄바꿈 문자를 자동으로 건너뛰기 때문에, 입력값이 여러 줄로 나뉘어 있더라도 하나의 문장으로 네 개의 값을 순차적으로 읽을 수 있습니다. 또한 구조체 Student는 서로 다른 자료형의 데이터를 하나의 논리적 단위로 묶어 관리할 수 있게 해주며, 점(.) 연산자를 통해 각 멤버 변수에 손쉽게 접근할 수 있습니다.
입력
priyam kundu 16 10
출력
(16, priyam, kundu, 10)