C ++基本入出力
C ++標準ライブラリは、入力/出力機能の豊富なセットを提供し、我々は、以降の章で説明します。 この章では、C ++プログラミング、最も基本的で一般的なI / O操作を説明します。
C ++ I / Oストリームが、バイトのシーケンスである、ストリームで発生します。 バイトストリームは、デバイスからの入力操作と呼ばれるメモリ(例えば、キーボード、ディスクドライブ、ネットワーク接続など)が流れている場合。 バイトストリームは、出力動作と呼ばれ、(例えば、ディスプレイ、プリンタ、ディスクドライブ、ネットワーク接続など)のメモリデバイスから流れる場合。
I / Oライブラリのヘッダファイル
次のヘッダファイルは、C ++プログラミングにおいて重要です。
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如setw和setprecision),来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
標準出力ストリーム(COUT)
事前定義されたオブジェクトはcoutはostreamのクラスのインスタンスです。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 ++コンパイラが出力変数で、値を表示するには、適切なストリーム挿入演算子を選択します。 <<演算子は、組み込み型(整数、浮動小数点、ダブル、文字列、およびポインタ)項目出力に過負荷になっています。
上記の例に示すように、ストリーム挿入演算子<<は、声明の中で複数回使用することができ、行の終わりのためのENDLは改行を追加します。
標準入力ストリーム(CIN)
istream cinを事前に定義されたオブジェクトは、クラスのインスタンスです。CINオブジェクトは、標準入力デバイス、通常はキーボードに提携しています。 次のようにCINの抽出は、組み合わせて使用する>>ストリーム演算子です。
#include <iostream> using namespace std; int main( ) { char name[50]; cout << "请输入您的名称: "; cin >> name; cout << "您的名称是: " << name << endl; }
上記のコードをコンパイルして実行されると、それは名前を入力するようユーザーに促します。 ユーザが値を入力し、Enterキーを押すと、次のような結果が表示されます。
请输入您的名称: cplusplus 您的名称是: cplusplus
C ++コンパイラは、値を抽出するために適切なストリーム抽出演算子を選択する、データ入力値の種類に基づいて、与えられた変数に格納します。
データ入力要件を複数、次のステートメントを使用することができます場合は、ストリームの抽出演算子は、>>、声明の中で複数回使用することができます:
cin >> name >> age;
これは、次の2つのステートメントと等価です。
cin >> name; cin >> age;
標準エラーストリーム(CERR)
事前定義オブジェクトのostreamのCERRは、クラスのインスタンスです。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....
標準のログ・ストリーム(詰まり)
事前定義されたオブジェクトはostreamのクラスのインスタンスである詰まらせます 。 標準エラーデバイス、通常表示に所属するオブジェクトを詰まらせるが、オブジェクトは、目詰まりをバッファリングされています。これは、目詰まりに、各ストリームは、バッファがいっぱいになるか、または出力バッファがフラッシュされた場合にのみまでにバッファに格納されることを意味します。
次のようにも、組み合わせて使用されるストリーム挿入演算子<<詰まらせます 。
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
Error message : Unable to read....
これらの小さな例を通じ、COUT、CERRを区別し、その差を詰まらせるが、大きなプログラムの準備と実施に、両者の差は非常に顕著になることはできません。 だから、良いプログラミングの練習は他の人がストリーム出力を詰まらせるログメッセージを使用している間、エラーメッセージを表示するためCERRストリームを使用することを教えてくれる。