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を使用する必要があります。