위 문제를 해결하면서 cin과 getline()함수를 혼용으로 사용하게 되었습니다. 이 때 예상하는대로 결과가 나오지않아서 문제 푸는데 애를 먹었습니다..
cin
getline()
int t;
cin >> t;
string s;
getline(cin, s);
위와 같이 코드를 작성한다면 원하는 결과가 나오지 않습니다. 그 이유는 t의 값을 cin을 통해 입력받게 되면 입력 버퍼에 개행문제 '\n'이 남아있게 됩니다. 따라서 다음 getline()으로 한줄 전체를 입력받고자 할때 입력버퍼에 이미 개행문자가 있으므로 그냥 빈문자열을 s에 저장하게되고 종료되어버립니다.
int t;
cin >> t;
cin.ignore()
string s;
getline(cin, s);
이 코드 처럼 cin과 getline을 혼용하게 된다면 cin으로 값을 입력받은 이후에 ignore()를 활용하여 버퍼의 값들을 비워주는 과정으로 원하는 결과를 얻게 될 수 있습니다.