>백엔드 개발 >C++ >scanf() 대 cin: C 입력에 대해 어느 것이 더 빠릅니까?

scanf() 대 cin: C 입력에 대해 어느 것이 더 빠릅니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-19 07:13:03549검색

scanf() vs. cin: Which is Faster for C   Input?

속도 비교: scanf() 대 cin

질문:

사실인가요? C 프로그램에서 scanf()를 사용하는 것이 cin을 사용하는 것보다 빠르다는 것인가요?

답변:

예, 다음에서 보여주듯이 scanf()는 실제로 C에서 cin보다 빠릅니다. 벤치마킹 결과.

테스트를 수행하기 위해 많은 숫자 목록을 읽고 XOR 값을 계산하는 간단한 프로그램을 작성했습니다. 이 프로그램은 stdio의 scanf()와 iostream의 cin 및 cout을 모두 사용하여 구현되었습니다.

결과:

Method Execution Time
scanf() 6.4 seconds
cin and cout 24.3 seconds

이러한 상당한 속도 차이는 주로 iostream 기능에 기인합니다. ' C의 stdio 기능과 동기화를 유지하는 데 오버헤드가 발생합니다.

cin 성능 최적화:

그러나 std::ios::sync_with_stdio(false)와의 동기화를 비활성화하면, iostream 버전은 비슷한 성능을 얻을 수 있습니다.

Method Execution Time
cin and cout (with sync_with_stdio(false)) 5.5 seconds

이러한 최적화를 통해 iostream은 scanf()보다 성능이 뛰어나며 가장 빠른 방법이 됩니다.

결론:

scanf()는 본질적으로 cin보다 빠르지만 C 프로그램에서는 일반적으로 다음과 같은 이유로 사용하지 않는 것이 좋습니다.

  • cin과 달리 형식이 안전하지 않습니다.
  • 프로그래밍 스타일의 불일치, C 스타일과 C 스타일 코드의 혼합.
  • iostream은 특히 동기화를 비활성화하여 최적화할 때 입력 및 출력 작업을 위한 보다 현대적이고 효율적인 방법을 제공합니다.

위 내용은 scanf() 대 cin: C 입력에 대해 어느 것이 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.