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


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

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

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


조회수 505


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처럼 작용합니다.

  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close