Cplusplus-cpp-basic-input-output

提供:Dev Guides
移動先:案内検索

C ++基本入出力

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

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

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

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

Sr.No Header File & Function and Description
1

<iostream>

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

2

<iomanip>

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

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 ++コンパイラは、出力する変数のデータ型も決定し、適切なストリーム挿入演算子を選択して値を表示します。 <<演算子は、整数、浮動小数点、倍精度、文字列、およびポインター値の組み込み型のデータ項目を出力するためにオーバーロードされます。

挿入演算子<<は、上記のように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)

定義済みオブジェクト clogostream クラスのインスタンスです。 clogオブジェクトは標準エラーデバイスに接続されていると言われます。これは表示画面でもありますが、オブジェクト clog はバッファリングされます。 つまり、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を使用する必要があります。