#include <iostream>

using namespace std;


int main()

{

int year;

char address[80];


cout<<"입주 년도? \n";

cin>>year;

cout<<"사는 도시? \n";

cin.getline(address,80);

cout<<"입주 연도: "<<year<<endl;

cout<<"도시 : "<<address<<endl;

cout<<"등록 완료 \n";

return 0;

}

공부하다가 헷갈리는 부분이 나와서 그런데,

cin 은 빈칸,탭,캐리지리턴같은 화이트페이스가 있으면 문자열이 끝난 것으로 간주하고 

getline() 함수는 Enter키에 의해 전달되는 개행문자를 입력의 끝으로 간주한다라고 되어있는데,


이 개념에 의해서 위 소스에서 빨간색부분인 도시입력에서 입력을 받지 못하고 바로 cout구문으로 넘어가버는데요


cin>>year에 의해서 Enter 키가 만들어낸 개행문자를 입력 큐에 남겨두기 때문에 다음 도시입력이 getline 함수에서 입력큐에 남아있던 Enter키가 입력이 돼서 

끝나버린거라고 책에 나와있는데여


그렇다면 입력큐에 Enter키가 남아있으면, 저기 cin.getline 구문을 cin>>address로 바꿔버려도 똑같은 결과가 나와야 정상아닙니까?

cin>>address로 바꾸니 정상적으로 파일이 실행되는데요. Enter키도 ㅎ캐리지리턴?이니까 화이트페이스 아닙니까..그래서 연도 입력후에 입력큐에 남아있는 

Enter키가 다음 cin>>address에 들어가야한다가 제 판단인데 어딘가 잘못되었나요?..설명좀해주실분?