• 締切済み

iostream stdio 違いについて。

一昔前のC言語では、#include <stdio.h>などのものを、C ++言語では、#include <iostream>の1行で済ませるということでしょうか? だけど、C + +言語で、#include<stdio.h>を使いたければ使うことは出来ますよ。だけど、#include<iostream>だけで、済みますよ。という事でしょうか?つまり、#include<iostream>は、全ストリームつまり、全ファイル・全ライブラリを1つにまとめたという事でしょうか?教えて頂けると幸いです。

みんなの回答

  • _kappe_
  • ベストアンサー率68% (1522/2216)
回答No.3

>#include <iostream>は(中略)全てのファイルやライブラリを含んでいるわけではありません。 >という事であっているのでしょうか? 合っています。 >C言語とC++では、標準入出力が異なるよ。ということでしょうか? いいえ、C言語とC++言語の違いではなくてstdio.hとiostreamの違いです。

  • _kappe_
  • ベストアンサー率68% (1522/2216)
回答No.2

> C言語の#include<studio.h>と#include<iostream>はどこが違うのでしょうか? 標準出力へデータを書く、標準入力からデータを読む、などの目的は両者で重なっていますが、それぞれの実装方法や機能の範囲は違います。 少し例を挙げます。 stdio.hのprintfを使って書いたprintf("data(%04d)=%10.1f\n", i, d[i]);という処理は、iostreamの機能だけでは書けません。文字列フォーマットのためには別のヘッダファイルをインクルードすることになります。 一方、iostreamでは自作のデータ型でも<<演算子を定義することでcout << myDataType;のように出力することができますが、stdio.hの関数を使って同様のことはできません。 最後に、よくある書き間違いですがstudio.hではなくてstdio.hです。

zasx1097
質問者

お礼

チャットGPTに聞きました。 C++言語において、#include <iostream>はC言語の#include <stdio.h>に似た機能を果たしますが、直接的な一対一の比較ではありません。#include <iostream>はC++の標準入出力ライブラリであり、std::coutやstd::cinなどを含む機能を提供します。 一方で、#include <stdio.h>はC言語の標準入出力ヘッダであり、C++でも使用可能ですが、C++の標準ライブラリである<iostream>が提供する機能とは異なります。 簡潔に言えば、#include <iostream>は標準的なC++の入出力機能をまとめて提供しているもので、全てのファイルやライブラリを含んでいるわけではありません。 という事であっているのでしょうか?後、C言語とC++では、標準入出力が異なるよ。ということでしょうか?教えて頂けると幸いです。

zasx1097
質問者

補足

もう少し簡単なプログラムで、例を挙げて頂けると幸いです。

  • _kappe_
  • ベストアンサー率68% (1522/2216)
回答No.1

>#include<iostream>は、全ストリームつまり、全ファイル・全ライブラリを1つにまとめたという事でしょうか? 違います。iostreamをインクルードすることで使えるようになるのは標準C++ライブラリのごく一部の機能だけです。

zasx1097
質問者

お礼

以下のURLで、C言語の#include<studio.h>と、C++の#include<iostream>を使っているのですが、どこが違うのでしょうか?教えて頂けると幸いです。 https://zenn.dev/masahiro_toba/books/a7d0c3d685a209/viewer/531675

zasx1097
質問者

補足

それでは、C言語の#include<studio.h>と#include<iostream>はどこが違うのでしょうか?教えて頂けると幸いです。

関連するQ&A

  • stdio.h について

    質問です。 Borland C++ Compiler 5.5 を使っているのですが…。 Includeの中にstdio.hのファイルがありません stdio.hのソースを教えて下さい!!

  • VC++ iostreamの不具合(?)

    手強いVC++のエラーです(対処が効かない #include <iostream> int main () {cout << "ggrks"; return 0;} C2065エラー 'cout' : 定義されていない識別子です。 #include <iostream.h> int main () {cout << "Hello C++!"; return 0;} C1083エラー include ファイルを開けません。'iostream.h': No such file or directory iostream(拡張子無)はCドライブのプログラムファイル、Microsoft Visual Studio 9.0\VC\includeに存在してます。 パスは許可してあります。 ツール→VC++ディレクトリ→インクルードファイルで C:\Program Files\Microsoft Visual Studio 9.0\VC\include と C:\Program Files\Microsoft Visual Studio 9.0\VC\include\iostream もついでに。 インストが完全でなかったのかと思い、「修復又は再インストール」で再インストしましたが変わりません。 気分転換(?)に一回アンインストールしてから再インストール(あまり意味ありませんけど)しても同様です。 どうすれば良いでしょうか。ご教授願います。

  • C++での <iostream.h>と<iostream>とusingnamespaceの関係等を教えてください。

    どうでもいい質問なのですが… C++で色々とソースを打っていると気づいたのです。 #include <iostream.h>とするとusing namespace std;の一文を書かなくてもコンパイルエラーになりません。 また、逆に#include <iostream>とするとusing namespace std;の一文が必要になります。 だから、h(ヘッダファイル)の.hは必要なのかな?と思い、#include <cstdlib.h>とするとコンパイルエラーになります。 なにか理屈がわかりません。コンパイラはVC++6.0です。よろしくご回答の方お願いいたします。

  • stdio.hは何のためにあるのでしょうか?

    stdio.hは何のためにあるのでしょうか? 標準関数をまとめたライブラリですが、 「標準」と呼ばれるぐらいなので、 includeしなくても使えるように最初からすればよいと思っています。

  • エラー 'iostream.h' : No such file or directory

    当方VC++初心者です。3Dモーションセンサーを購入してその角度等の値をファイルに書き込みすることをしようとしています。 センサーに付属しているVC++用のサンプルプログラムをコンパイルしたところ、 fatal error C1083: include ファイルを開けません。'iostream.h' : No such file or directory というエラーが出ます。 #include <iostream.h>が関係していると思い、 #include <iostream>にしてみたり、#include <iostream.h>を消してコンパイルすると、エラーがたくさん出てくるので#include <iostream.h>に意味があると思われますが、そのくせ#include <iostream.h>というファイルがないというのはどういうことなのかよくわからず対処できずに困っています。 Microsoft Visual Studio .net 2003を使っています。

  • iostreamについて

    今までOSはTurbo Linux 7を使っていましたが、最近RedHatLinux9にかえました。 それで、今までは普通に出来ていたことが出来なくなったので質問します。どちらかと言うとプログラム系の亊ですけど、Windowsではこんなことは起きないのでここで質問します。 C++でプログラムを作っているのですけど、 プログラム中で<iostream.h>,<fstream.h>をインクルードしていて、コンパイルすると /usr/include/c++/3.2.2/backward/fstream.h:31 から include されたファイル中, stereo_draw.cpp:4 から: /usr/include/c++/3.2.2/backward/backward_warning.h:32:2: 警告: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated. と言うエラーメッセージが出るのです(stereo_draw.cppは私の作ったソースファイル)。 英語が得意ではないので訳があやしいですが、 『このファイルは推奨してない、または古いヘッダーをインクルードしています。C++スタンダードセクション17.4.1.2中の32ヘッダーのいづれかを使うことを推めます。例えば<X.h>の代わりにC++インクルード用の<X>ヘッダーをインクルードするとか、非推奨の<strstream.h>の代わりに<sstream>を使うなど』 と言っているのではないかと思います。でも、セクション17.4.1.2の32個のヘッダーなんて知らないです。それに、Turboの時はこんなメッセージは出ませんでした。 これを解決する方法をどなたか知っていたら教えて下さい。

  • stdio.hの中身

    C言語でよく使う、stdio.hというファイルの中身を見たいのですが、どうすれば見れるかわかりません。 教えていただけないでしょうか??

  • iostreamについて

    はじめまして。 一応検索したのですが見つからなかったので質問させていただきます。 僕は、中1の時に、C++を挫折したのですが、 その原因が、iostream(昔の事なので、あってるかは分かりませんが・・・今調べて見ると、iostreamからリンク(?)されている『istream』が空白だったのですが、これは正常でしょうか・・・?)の内容を書き換えてしまったらしいのですorz それで、まったくプログラムが動きません・・・ どうすれば直るでしょうか? (もういっかい、C++を入れなおすしかないのでしょうか・・・?) 又、C++って、『iostream』みたいなのを変えると、 書き方が変わるんですよね? となると、今C++をやっていても、将来iostreamを使わなかったら意味がないんじゃないんですか? その辺りがよくわかりませんorz もうひとつ、ぼくは将来ゲームプログラマーを目差していて、現在も日本語プログラミング言語『ひまわり』や、RPGツクールでゲームを作っているのですが、 やはり、C++も使えるようになればゲームを作るつもりです。 そこで、オススメの、『初心者向けC++でゲーム作成講座』みたいな物はありませんか? もちろん、これは自分でも探しますが、もしあれば・・・ということでお願いします。 少しのヒントでもいいので、お願いします。

  • C/C++のヘッダーファイルやライブラリー関数について

    C言語の勉強をはじめました。コードの最初に書く#include<stdio.h>などの ヘッダーファイルやライブラリ関数を見ることはできるのでしょうか? 初歩的なことですみませんがよろしくお願い致します。

  • Visual C++ 2008で<stdio.h>のインクルード文が使えない!?

    #include <stdio.h> int main(){ printf("hello!"); } で実行すると、 : warning C4627: '#include <stdio.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します .\■■■.cpp(5) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? と言ったエラーが起きてしまいます。 ちなみに、インクルードファイルらしき物を削除しまくった覚えがあります…。100%これが原因かと。 これが原因だとしたらどうすればいいんでしょうか? あと、DXライブラリが使えるように設定を変えたこともあります。 どこの何を変えたかは忘れてしまいましたけど。

専門家に質問してみよう