chatterboy   10년 전

예제 입력을 넣어보면 마지막 줄의 문장은 읽질 않더라구요.

예를 들어서,

3

short

lines?

sldkfjlsdkjflsjflsejlfkjselfkj

를 입력하면 결과로는 7이 나옵니다.. 함수 위치를 while 문 아래에 둬도 안되고

cin.getline()을 이용해봐도 같은 문제점 때문에 해결할 수가 없네요.

baekjoon   10년 전

cin과 getline때문에 그렇습니다.

위의 cin >> n; 에서 n을 입력받았을 때, 숫자만 입력받게 됩니다.

즉, 숫자 뒤에 엔터가 아직 입력되지 않은 상태로 남아있게 됩니다.

그래서, getline(cin,s)를 호출하면 첫째 줄이 아니고, n의 뒤에있는 엔터만 입력받게 됩니다.

따라서, 11번 줄에 string s2; getline(cin,s2); 를 추가해주시면 엔터를 무시하고 입력받을 수 있게 됩니다.

그림이라도 그리면 설명이 쉬운데 글로 쓰려니깐 설명이 복잡한거 같은데 이해 되시나요?

chatterboy   10년 전

네 설명을 잘 해주셔서 이해를 하는데는 문제가 업네요.

답변 감사합니다:)

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