C++ 基本的な入出力

C++ 標準ライブラリは豊富な入力/出力機能を提供しており、それらについては後続の章で紹介します。この章では、C++ プログラミングにおける最も基本的で一般的な I/O 操作について説明します。

C++ の I/O はストリーム内で発生します。ストリームはバイトの並びです。バイトストリームがデバイス(キーボード、ディスクドライブ、ネットワーク接続など)からメモリへ流れる場合、これを入力と呼びます。输入操作メモリからデバイス(ディスプレイ、プリンター、ディスクドライブ、ネットワーク接続など)へバイトストリームが流れる場合、これを出力と呼びます。输出操作。

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

以下のヘッダーファイルは C++ プログラミングにおいて重要です。

头文件関数と説明
<iostream>このファイルは定義しているcin、cout、cerrとclogオブジェクトは、それぞれ標準入力ストリーム、標準出力ストリーム、非バッファ型標準エラーストリーム、バッファ型標準エラーストリームに対応します。
<iomanip>このファイルは、いわゆるパラメータ化されたストリームマニピュレータ(たとえばsetwとsetprecision)を使用して、標準化された I/O の実行に役立つサービスを宣言します。
<fstream>このファイルは、ユーザー制御のファイル処理宣言サービスです。詳細については、ファイルとストリームに関する章で説明します。

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

定義済みのオブジェクトcoutであるiostreamクラスのインスタンス。cout オブジェクトは標準出力デバイス(通常はディスプレイ)に「接続」されています。coutは、ストリーム挿入演算子 << と組み合わせて使用されます。以下に示すとおりです:

实例

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

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

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

定義済みのオブジェクトcinであるiostreamクラスのインスタンス。cin オブジェクトは標準入力デバイス(通常はキーボード)に接続されています。cinは、ストリーム抽出演算子 >> と組み合わせて使用されます。以下に示すとおりです:

实例

#include <iostream> using namespace std; int main( ) { char name[50]; cout << "名前を入力してください:"; cin >> name; cout << "お名前は:" << name << endl; }

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

请输入您的名称: cplusplus
您的名称是: cplusplus

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

ストリーム抽出演算子 >> は、1 つの文の中で複数回使用できます。複数のデータを入力する必要がある場合は、次のような文を使用できます:

cin >> name >> age;

これは次の2つのステートメントと同等です:

cin >> name;
cin >> age;

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

定義済みのオブジェクトcerrであるiostreamクラスのインスタンス。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であるiostreamクラスのインスタンス。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 ストリームを使用することが推奨されます。


其他扩展