Chapter 4. 복합 데이터형 - get()

SeungHee Yun·2022년 7월 16일
0

C++ 기초 플러스

목록 보기
3/115

get()


편리한 getline()도 단점이 있다. 다음 예시를 보자

cout << "아파트 입주 날짜 입력";

int year{};
cin >> year;

cout << "거주 중인 도시 입력 ";

char address[80] {};
cin.getline(address, 80);

cout << "입주 날짜 : " << year << endl;
cout << "거주 도시 : " << address << endl;
cout << "등록 완료";

🎆 입력

1966
Seoul

🎇 출력

1966

이 프로그램은 1966을 입력 받은 후, 다음 입력, Seoul을 입력하려고 엔터를 누르는 순간

프로그램이 완료된 것으로 보고 프로그램을 종료한다.

이는, cin이 입주 연도를 읽어들이고 enter를 누를 때, 개행 문자를 큐에 남겨 두기 때문에,

cin 다음 cin.getline()이 호출 되는 순간, 큐에 남아있는 엔터가

getline() 함수에 입력되기 때문이다.

이게 대한 해결책은, 매개변수가 없는 get() 함수의 사용이다.

방법 1

cout << "아파트 입주 날짜 입력";

int year{};

(cin >> year).get();		// 변하는 부분

cout << "거주 중인 도시 입력";

char address[80] {};
cin.getline(address, 80);

cout << "입주 날짜 : " << year << endl;
cout << "거주 도시 : " << address << endl;
cout << "등록 완료";

방법 2

cout << "아파트 입주 날짜 입력";

int year{};

cin >> year;

cin.get();		// 변하는 부분 

cout << "거주 중인 도시 입력":

char address[80];

cin.getline(address, 80);

cout << "입주 날짜 : " << year << endl;
cout << "거주 도시 : " << address << endl;
cout << "등록 완료";

두 방법 모두 입력과 출력은 다음과 같다.

🎆 입력

1966
Seoul

🎇 출력

1966
Seoul

출처 : C++ 기초 플러스 6판 / 성안당


profile
Enthusiastic Game Developer

0개의 댓글