o9j8w7   1년 전

제 소스코드에서 25번째 줄에 질문의 개수가 n 개이므로 i=0 부터 i<n 까지로 작성했었는데 이렇게 될 시 한 개가 입력이 안됐습니다.

n+1 로 고치니까 잘 되는데 이유가 무엇일까요?

adung7   1년 전

cin 으로 입력받을때 버퍼중에 '\n' 개행문자(엔터)는 무시하고 값을 읽기 때문에 이 개행문자가 버퍼에 남게 되는데 

getline은 기본적으로 '\n'이 있거나 EOF까지 값을 읽게 되므로 이럴때 getline을 쓰시게 되면 바로 버퍼에 '\n'이 있기때문에 한줄을 날려먹게 됩니다.

따라서 한줄을 더 받아야하는 상황이 된것이고 이 문제는 getline을 쓰기 전에 cin.ignore(); 을 써주시면 버퍼에 남아있던 한 문자를 비워내기 때문에 n + 1이 아니라 n까지만 쓰시더라도

문제없이 입력받을수 있습니다.

댓글을 작성하려면 로그인해야 합니다.