iostream.h와 stdio.h의 차이는 뭔가요?

HotPotato의 이미지

:shock: 제가 C를 배운지 얼마 안되었을 때 C에서 표준 입출력 함수를 쓸 때
주로 아래와 같은 형식으로 쓰는 것을 당연한 걸로 보아왔습니다.

#include <stdio.h>

int main()
{
    printf("문장");
}

그러다가 언젠가 C++를 공부하기 위해 구입한 모 출판사의 C++도서에는
이전에 배웠던 "stdio.h"에 "printf()" , "scanf()" 대신 아래와 같은 형식을 따르는 것을 보았기에, :

#include <iostream.h>

int main()
{
    cout << "문장";
}

C++에선 대신 "iostream.h"에 "cin()", "cout()"을 쓰는 것이라고 여겨왔습니다. (문법도 왠지 유닉스의 쉘 스크립트를 닮은 듯 했고요.) 그런데, 학교에서 VC++를 배울 때 보니까, 제가 책에서 보았던 "iostream",".."은 안쓰고 일반 C언어처럼 "printf()"류의 함수를 그대로 쓰더군요.

그래서 잠시 궁금해하다가 한동안 모른채하고 살아왔는데 오랜만에 게시판에서 유사한 형태를 보니 궁금증이 다시 유발해서 이렇게 감히 여쭤보는 바입니다.

(질문이 너무 초보적인 내용 같아서 읽어주시는 분들에게는 여간 미안하지 않은것 같습니다.)

mach의 이미지

고민하지 마시고, 도구는 C++까지 지원하지만, 사용은 C로 하는 경우라고 생각하세요. 포크레인으로 도랑친다고 생각하셔도 좋고, 덤프트럭으로 사람1명 옮긴다고 생각하셔도 좋겠네요. 현존하는 C++컴파일러는 C의 모든 기능은 기본적으로 지원합니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

cpulpul의 이미지

C++에서도 <stdio.h>를 include 하면 printf()함수를 사용할수가 있지요..

그리고 cin, cout는 함수가 아님니다. 클래스 객체이지요..

<< 등의 연산은 내부에 연산자재정의에 의한 함수를 만들어서 실행하는것입니다.

purewell의 이미지

사족...

C++ 표준 헤더파일

#include <cstdio> // stdio.h 대신...
#include <iostream> // iostream.h는 비표준...

단!! 위의 함수는 std의 네임스페이스를 사용합니다.

using namespace std;

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.