8958번 - OX퀴즈
문제를 1차원 배열로 풀면 쉬울 것 같아서 제가 아직 미숙했던 string 함수들을 써서 풀어보았습니다.
아래와 같이 작성했는데, 예시를 입력하면
0 10 9 7 55
이런 답이 나옵니다.
test를 6으로 한 다음에 똑같은 예시를 입력하면 밑에 30이 추가됐었습니다.
원인을 분석하기위해 중간에 cout등을 넣어서 확인해봤는데, 처음에 getline으로 공백이 a에 들어가게 되는 문제가 있었습니다.
아무래도 input받을 때에 공백이 같이 받아지는 것 같은데, getline(cin , a)면 엔터를 입력받을 때까지 문자열을 입력받는 것으로 알고있었는데 왜 이런 문제점이 발생했는지 너무 궁금합니다.
고수분들 가르쳐주세요 ㅠㅠ
뭔가 규칙이 찾아지시지 않으셨습니까? 뭔가 답이 하나씩 밀린 느낌입니다.
힌트는 버퍼.
감사합니다! 버퍼 초기화라는 것을 아직 배우지 않아서 모르고있었는데, 버퍼 초기화라는 기법을 덕분에 처음으로 접하게 되었습니다!
소스에 cin.ignore() 을 추가하니 답이 제대로 나옵니다! 답해주셔서 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
20143645 6년 전
문제를 1차원 배열로 풀면 쉬울 것 같아서 제가 아직 미숙했던 string 함수들을 써서 풀어보았습니다.
아래와 같이 작성했는데, 예시를 입력하면
이런 답이 나옵니다.
test를 6으로 한 다음에 똑같은 예시를 입력하면 밑에 30이 추가됐었습니다.
원인을 분석하기위해 중간에 cout등을 넣어서 확인해봤는데, 처음에 getline으로 공백이 a에 들어가게 되는 문제가 있었습니다.
아무래도 input받을 때에 공백이 같이 받아지는 것 같은데, getline(cin , a)면 엔터를 입력받을 때까지 문자열을 입력받는 것으로 알고있었는데 왜 이런 문제점이 발생했는지 너무 궁금합니다.
고수분들 가르쳐주세요 ㅠㅠ