kevin6423   3년 전

안녕하세요, 알고리즘을 구성할때 식에서 -가 나오기 전까지의 수는 모두 plus라는 array(int형 배열)에 저장하고, 식에-가 한번이라도 나오면 그 이후의 수들은 minus라는 array에 저장하기로 했습니다. 

구체적으로는 char들을 하나하나 읽어가며 숫자들은 buffer라는 char 배열(크기 5) 에 순차적으로 저장하고, +나 - 의 연산자가 나오면 -가 한번이라도 나왔냐, 나오지 않았느냐에 따라 buffer를 minus혹은 plus에 저장 했습니다. 이후에 plus의 모든 데이터의 합에서 minus의 모든 데이터의 합을 빼고 출력했습니다.

처음 구현할때, str[51]을 선언하고, gets(str)으로 stdin 입력을 받아 데이터를 하나하나 읽어나가는 방식을 생각했는데 계속 틀리더군요. 그래서 while문으로 stdin stream을 하나씩 받아와 data를 분류하고 저장하는 것을 구현하니 맞았습니다. gets함수를 지양하라는 경고가 있었긴 했지만 구체적으로 왜 틀린지를 잘 모르겠어서 질문드립니다. 개행문자도 gets가 읽어와서 이러한 오류가 생기는 것인가요?

kevin6423   3년 전

수정 전 코드 첨부드립니다.

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