C++에서 printf랑 cout은 무슨 차이가 있나요?

조회수 9772회

C++에서 printf랑 cout은 무슨 차이가 있나요?

뭐 printf는 형식지정자를 따로 써줘야해서 귀찮은 점이 있긴한데...

이 외에는 다른점이 뭔가요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    printfcout보다 빠르기 때문에 특수한 상황에서 주로 쓰이고, 보통 C++에서는 cout을 씁니다.

    C++의 Why should I use instead of the traditional 를 요약해보면,

    safety와 error, 확장성과 상속을 생각했을때, <iostream><cstdio>보다 낫습니다.

    printf()scanf()도 그 자체로 좋은 기능이지만, C++ I/O가 보기에는 제약이 많습니다. 다음은 C++(<<,>>)과 C(printf(), scanf())의 비교입니다.

    • Type-safe : <iostream>은 컴파일러가 I/O되는 객체의 타입을 static하게 알 수 있습니다. 반대로 <cstdio>%를 써서 type을 dynamic하게 알아냅니다.

    • Less error prone : <cstdio>%를 쓰기 때문에 형식지정자가 실제로 I/O할 객체와 일치해야 합니다. <iostream>은%`토큰을 쓰지 않기 때문에 error를 줄일 수 있습니다.

    • Extensible : <iostream> 메카니즘은 기존의 코드를 바꾸지 않고 유저가 정의한 타입을 I/O할 수 있습니다.

    • Inheritable : <iostream> 메카니즘은 std::ostream이나 std::istream같은 real class로부터 만들어졌기 때문에 <cstdio>FILE*과는 달리 상속이 가능합니다. 따라서 유저가 정의한 것들도 stream처럼 보이고, 또 stream처럼 작용합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)