dalae37   4년 전

그냥.. 맘편히 string과 cin써서 풀면 될 것을 오기부리는 바람에 많이 삽질했네요.

혹시나 같은 문제를 겪고 계신분들을 위해 scanf로 개행까지 입력 받는 법 알려드릴게요.


소스코드에 보이는 바와 같이 정규표현식을 이용하는 법은 잘 아실거에요.

마지막에 오는 개행 문자를 제외하고 입력 받아서 문자열에 저장.

근데 그 후 개행 문자가 입력 버퍼에 남아있어 다음 입력이 제대로 안됩니다.

버퍼에 남은 문자를 scanf로 깔끔히 입력 받으면 말끔히 처리가 됩니다.

VS에서 코딩하실경우 fflush도 될텐데 채점 서버에서 지원하는지는 모르겠네요

그리고 나머지 기능 구현을 위해 문자열 슬라이싱과 비교는 각각 strtok, strcmp 써서 풀었어요.

djm03178   4년 전

어떻게 짜셨는지는 모르겠지만, 평범하게 %s와 %d로 풀 수 있습니다.

djm03178   4년 전

그리고 fflush(stdin); rewind(stdin); 등은 모두 사용할 수 없습니다.

dalae37   4년 전

%s와 %d로 풀 수 있었나요? 그 생각은 안해봤네요.

gets로 시도 -> 실패 -> scanf로 시도

의 과정을 거치다보니 개행 문자 단위로 읽는 방식대로 작성을 했어요~

dalae37   4년 전

c로 푸신거 봤는데 그런 방법이 있었군요;; ㅋㅋㅋㅋㅋ

완전 바보짓 했네요. 정규표현식 방법 익힐 수 있었다고 긍정적으로 생각해야곘어요.

다른 분들은 저같은 실수 안하도록 글 남겨둘게요.

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