string 타입에 빈칸을 포함하는 문자열을 입력 받는 방법

string 타입의 변수 str에 문자열을 넣을 때

cin >> str;

처럼 하면 문자열은 들어가는데 문자열에 빈칸이 들어가면 입력이 안되었다. 정확히는 안된다기 보다는 되는 것처럼 보이고 다음 cin으로 입력을 받을 때 그냥 무시처리 된다는 것이지만. 문자열 중간의 공백 때문에 생기는 것인데 이것을 해결하기 위해 인터넷을 찾아본 결과 다음처럼 하니까 해결되었다.

getline(cin, str, 'n');

getline 함수가 아닌 cin만 가지고는 공백이 들어간 문자열은 받을 수 없다고 한다.

자바나 액션스크립트에서는 이런 고민할 필요가 없었는데 C++에 오니 참 이런 것 하나 처리하기에도 민감할 필요성이 있는 것 같다.

Leave a Reply

Your email address will not be published. Required fields are marked *