C++ cout cin 入出力ストリームについて

C言語の場合、画面出力、画面入力には、printf関数系やscanf関数系を使い、
ファイル読み書き処理には、fopen、fclose等の標準ライブラリ関数を使いました。

C++では、こういったデータ処理を
ストリームと言う概念で統一的な方法で使える新機能が追加されました。

ストリームを使用するにはまず、#include <iostream>の記述を行います。

次に、対応するストリームオブジェクトを作成します。

対応するストリームオブジェクトとは
画面出力用・入力用、ファイル出力用・入力用等です。

これでストリーム機能が使えるようになります。

C言語での画面出力例と、C++での画面出力例を比較してみましょう。

C言語での画面出力例

#include <stdio.h>

void main() {

      printf("C++言語入門\n");
}

C++のストリームを使った画面出力例

using namespace std;

void main() {

      cout << "C++言語入門\n";
}

どうでしょうか?

ずいぶん変わった感じを受けると思います。

順番に説明していきます。

まず、ストリームを使うので、#include <iostream>と記述しました。

次に using namespace std; と言う記述がありますが、
これは名前空間と言う機能です。

ここでは説明は避けたいと思います。
詳細は std名前空間について をご覧下さい。

そして、メインとなる画面出力ですが、coutと言う単語が出てきました。

これは、画面出力用のオブジェクト名です。

ストリームを使うにはオブジェクトを作らなければならない。
と説明しましたが、
作ってないのにいきなりオブジェクト名を使っています。

この理由は、画面出力・入力用オブジェクトはよく使われるので、
C++の標準機能として、すでに作られているのです。

coutは画面出力用オブジェクト名、
そしてcinは画面入力用オブジェクト名です。

ですから新たに作る必要はないワケです。

次に画面出力ですが、coutの後には<<と言う演算子がついています。
しかし、これはビット演算の左シフト演算子ではありません。

画面に出力するための演算子です。

そのあとに文字列を記述すれば、それが画面に表示されます。

この<<演算子には、C++の演算子多重定義と言う機能が使用されています。
詳細は 演算子多重定義とは? をご覧下さい。

出力演算子<<は、演算子多重定義を理解しないと非常に理解しにくいと思います。

理解しないまま使っても良いですが、理解できるとスッキリします。

こういった事情があるので、以外と使ってる人が少なかったりします。

C言語式の画面出力の方が簡単に理解できて手軽なので、
こちらを使う人が多いようです。

機能的な違いは多少ありますが、
自分の好みでどちらを使うか選んで頂ければ良いと思います。

このサイトのC++解説ではストリームを使っています。