20143645   4년 전

문제를 1차원 배열로 풀면 쉬울 것 같아서 제가 아직 미숙했던 string 함수들을 써서 풀어보았습니다.

아래와 같이 작성했는데, 예시를 입력하면 

0
10
9
7
55

이런 답이 나옵니다.

test를 6으로 한 다음에 똑같은 예시를 입력하면 밑에 30이 추가됐었습니다.

원인을 분석하기위해 중간에 cout등을 넣어서 확인해봤는데, 처음에 getline으로 공백이 a에 들어가게 되는 문제가 있었습니다.

아무래도 input받을 때에 공백이 같이 받아지는 것 같은데, getline(cin , a)면 엔터를 입력받을 때까지 문자열을 입력받는 것으로 알고있었는데 왜 이런 문제점이 발생했는지 너무 궁금합니다.

고수분들 가르쳐주세요 ㅠㅠ

chogahui05   4년 전

뭔가 규칙이 찾아지시지 않으셨습니까? 뭔가 답이 하나씩 밀린 느낌입니다.

힌트는 버퍼.

20143645   4년 전

감사합니다! 버퍼 초기화라는 것을 아직 배우지 않아서 모르고있었는데, 버퍼 초기화라는 기법을 덕분에 처음으로 접하게 되었습니다!

소스에 cin.ignore() 을 추가하니 답이 제대로 나옵니다! 답해주셔서 감사합니다!

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