C ++の基本的な入力/出力

C ++標準ライブラリは、後続の章で説明する入出力機能の広範なセットを提供します。この章では、C ++プログラミングに必要な非常に基本的で最も一般的なI / O操作について説明します。

C ++ I / Oは、バイトのシーケンスであるストリームで発生します。キーボード、ディスクドライブ、ネットワーク接続などのデバイスからメインメモリにバイトが流れる場合、これはinput operation また、バイトがメインメモリからディスプレイ画面、プリンタ、ディスクドライブ、ネットワーク接続などのデバイスに流れる場合、これは呼び出されます。 output operation

I / Oライブラリヘッダーファイル

C ++プログラムにとって重要な次のヘッダーファイルがあります-

シニア番号 ヘッダーファイルと機能および説明
1

<iostream>

このファイルは、 cin, cout, cerr そして clog オブジェクト。それぞれ、標準入力ストリーム、標準出力ストリーム、バッファリングされていない標準エラーストリーム、およびバッファリングされた標準エラーストリームに対応します。

2

<iomanip>

このファイルは、次のようないわゆるパラメータ化されたストリームマニピュレータを使用してフォーマットされたI / Oを実行するのに役立つサービスを宣言します。 setw そして setprecision

3

<fstream>

このファイルは、ユーザー制御のファイル処理のためのサービスを宣言します。これについては、ファイルとストリームに関連する章で詳しく説明します。

標準出力ストリーム(cout)

事前定義されたオブジェクト cout のインスタンスです ostreamクラス。coutオブジェクトは、通常は表示画面である標準出力デバイスに「接続」されていると言われます。ザ・cout は、次の例に示すように、記号より2つ小さい<<として記述されるストリーム挿入演算子と組み合わせて使用​​されます。

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Hello C++";
 
   cout << "Value of str is : " << str << endl;
}

上記のコードをコンパイルして実行すると、次の結果が得られます。

Value of str is : Hello C++

C ++コンパイラは、出力される変数のデータ型も決定し、適切なストリーム挿入演算子を選択して値を表示します。<<演算子は、組み込み型integer、float、double、strings、およびpointer値のデータ項目を出力するためにオーバーロードされます。

挿入演算子<<は、上記のように1つのステートメントで複数回使用できます。 endl 行末に改行を追加するために使用されます。

標準入力ストリーム(cin)

事前定義されたオブジェクト cin のインスタンスです istreamクラス。cinオブジェクトは、通常はキーボードである標準の入力デバイスに接続されていると言われています。ザ・cin は、次の例に示すように、記号より2つ大きい>>として記述されるストリーム抽出演算子と組み合わせて使用​​されます。

#include <iostream>
 
using namespace std;
 
int main() {
   char name[50];
 
   cout << "Please enter your name: ";
   cin >> name;
   cout << "Your name is: " << name << endl;
 
}

上記のコードをコンパイルして実行すると、名前の入力を求められます。値を入力してからEnterキーを押すと、次の結果が表示されます-

Please enter your name: cplusplus
Your name is: cplusplus

C ++コンパイラは、入力された値のデータ型も判別し、適切なストリーム抽出演算子を選択して値を抽出し、指定された変数に格納します。

ストリーム抽出演算子>>は、1つのステートメントで複数回使用できます。複数のデータを要求するには、次を使用できます-

cin >> name >> age;

これは、次の2つのステートメントと同等になります-

cin >> name;
cin >> age;

標準エラーストリーム(cerr)

事前定義されたオブジェクト cerr のインスタンスです ostreamクラス。cerrオブジェクトは、標準エラーデバイスに接続されていると言われます。これは、表示画面でもありますが、オブジェクトです。cerr はバッファリングされておらず、cerrへの各ストリーム挿入により、その出力がすぐに表示されます。

ザ・ cerr 次の例に示すように、ストリーム挿入演算子と組み合わせて使用​​することもできます。

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   cerr << "Error message : " << str << endl;
}

上記のコードをコンパイルして実行すると、次の結果が得られます。

Error message : Unable to read....

標準ログストリーム(clog)

事前定義されたオブジェクト clog のインスタンスです ostreamクラス。詰まりオブジェクトは、表示画面でもあるがオブジェクトである標準エラーデバイスに接続されていると言われますclogバッファリングされます。これは、詰まりを挿入するたびに、バッファーがいっぱいになるまで、またはバッファーがフラッシュされるまで、その出力がバッファーに保持される可能性があることを意味します。

ザ・ clog 次の例に示すように、ストリーム挿入演算子と組み合わせて使用​​することもできます。

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   clog << "Error message : " << str << endl;
}

上記のコードをコンパイルして実行すると、次の結果が得られます。

Error message : Unable to read....

これらの小さな例では、cout、cerr、clogの違いを確認することはできませんが、大きなプログラムを作成して実行すると、違いが明らかになります。したがって、cerrストリームを使用してエラーメッセージを表示することをお勧めします。他のログメッセージを表示するときは、clogを使用する必要があります。