augustparkjy   4년 전

c++에서 c의 입출력 함수와 c++ 입출력 객체를 이해하기 위해 몇가지 방법으로 이 문제를 시도해보았습니다.

sync_with_stdio(false)로 하면 c++과 c의 표준입출력 stream buffer를 동기화하지 않아 속도가 향상되나 이 경우 c의 입출력 함수와 c++의 입출력 객체를 혼용해서 사용하면 안된다고 알고 있습니다. 단, single thread 프로그램 내에서는 혼용해서 사용하더라도 괜찮다라는 글을 어디선가 보고 확인차 시도해보았는데, 채점 결과 틀렸다고 나오네요.. pc의 ide에서 실행했을 때는 문제 내의 예시 입력을 입력했을 때 예시 출력대로 나오는 걸 확인했습니다.

sync_with_stdio(false)에 대해 제가 잘못 이해하고 있는 것인지 놓친 부분이 있는지 궁금합니다. 

답변 부탁드립니다. 감사합니다.

djm03178   4년 전

어디서 보셨는지는 모르겠지만, 싱글 스레드라고 해도 둘을 섞어쓰면 안 됩니다.

멀티 스레드인 것의 문제가 아니라, iostream이 사용하는 버퍼와 stdio가 사용하는 버퍼가 분리돼서 발생하는 동기화 문제이기 때문입니다.

augustparkjy   4년 전

잘못된 정보를 보고 잘못 이해하고 있었네요. 

배웠습니다!!  답변 감사합니다. 

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