Green55   6년 전

while문에 탈출 조건을 EOF로 바꿔도 안되고.. 어디가 틀렸을까요?

jh05013   6년 전

getchar도 stdin을 사용하기 때문에 sync를 끈 후에는 사용할 수 없습니다.

Green55   6년 전

@jh05013 해당 부분 수정해도 틀리네요..ㅠㅠ

jh05013   6년 전

개행과 EOF의 문제였습니다.

"지금은 데이터의 끝에 '\n'가 반드시 들어오도록 되어 있지만, 오래된 데이터는 '\n'가 없는 경우가 있습니다. getchar나 fgets로 입력받을 때는 '\n'과 EOF를 모두 검사하는 것이 안전합니다."

https://www.acmicpc.net/blog/v...

Green55   6년 전

으어어어 감사합니다 소스코드는 내릴게요

jh05013   6년 전

그리고 이 부분은 잘 모르겠지만, sync를 꺼도 통과되네요. 여기 사용된 함수가 cout과 gets인데, 하나는 출력이고 하나는 입력이라서 꼬이지 않는 것으로 보입니다. 이건 더 잘 아는 분이 알려 주시길 바라고 있습니다.

djm03178   6년 전

버퍼를 분리하지만 입력 자체는 두 쪽으로 모두 들어가는 것 같습니다. 입출력 버퍼 또한 별개이니 출력 함수들과 섞어쓰는 것은 문제되지 않고요.

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