<iostream>
標準ストリームに対する読み取りと書き込みを制御するオブジェクトを宣言します。 これは、多くの場合、C++ プログラムから入力と出力を実行するために必要な唯一のヘッダーです。
構文
#include <iostream>
Note
<iostream>
ライブラリでは、#include <ios>
、#include <streambuf>
、#include <istream>
、#include <ostream>
のステートメントを使用します。
解説
このオブジェクトは、次の 2 つのグループに分類されます。
標準入力など、ストリームで特定の操作を実行すると、同じストリームで別の指向の操作を実行できません。 そのため、cin
と wcin
など、両者に対するプログラムの操作に互換性はありません。
このヘッダーで宣言されたすべてのオブジェクトは、特有のプロパティを共有します。<iostream>
を含む翻訳単位では、定義するすべての静的なオブジェクトの前に、これらのオブジェクトが構築されていると仮定できます。 同様に、このような定義するすべての静的オブジェクトのデストラクターの前に、これらのオブジェクトが破棄されないと仮定できます。 (ただし、出力ストリームはプログラムの終了時にフラッシュされます)。そのため、プログラムの起動前とプログラム終了後に、標準ストリームから安全に読み取りまたは書き込みを行うことができます。
ただし、この保証は汎用的ではありません。 静的コンストラクターは、別の翻訳単位で、関数を呼び出す場合があります。 静的な構築に含まれる翻訳単位の順序が不明な場合、呼び出された関数では、このヘッダーで宣言されたオブジェクトが構築済みであるとは仮定できません。 このようなコンテキストでこれらのオブジェクトを使用するには、最初に ios_base::Init
クラスのオブジェクトを構築します。
グローバル ストリーム オブジェクト
名前 | 説明 |
---|---|
cerr |
cerr グローバル ストリームを指定します。 |
cin |
cin グローバル ストリームを指定します。 |
clog |
clog グローバル ストリームを指定します。 |
cout |
cout グローバル ストリームを指定します。 |
wcerr |
wcerr グローバル ストリームを指定します。 |
wcin |
wcin グローバル ストリームを指定します。 |
wclog |
wclog グローバル ストリームを指定します。 |
wcout |
wcout グローバル ストリームを指定します。 |
cerr
オブジェクト cerr
は、<cstdio>
で宣言されたオブジェクト stderr
に関連付けられているストリーム バッファーへの出力を制御します。
extern ostream cerr;
戻り値
ostream
オブジェクト。
解説
このオブジェクトは、バイト ストリームとして、標準エラー出力へのバッファリングされていない挿入を制御します。 オブジェクトが構築された時点で、式 cerr.flags & unitbuf
は 0 以外で、cerr.tie() == &cout
になります。 詳細については、 cerr.flags
および unitbuf
を参照してください。
例
// iostream_cerr.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void TestWide( )
{
int i = 0;
wcout << L"Enter a number: ";
wcin >> i;
wcerr << L"test for wcerr" << endl;
wclog << L"test for wclog" << endl;
}
int main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
cerr << "test for cerr" << endl;
clog << "test for clog" << endl;
TestWide( );
}
cin
cin
グローバル ストリームを指定します。
extern istream cin;
戻り値
istream
オブジェクト。
解説
オブジェクトは、バイト ストリームとして標準入力からの抽出を制御します。 オブジェクトが構築されると、cin.tie
の呼び出しは &cout
を返します。
例
これは、cin
が数字以外の文字を検出したときに、ストリームに失敗ビットを設定する例です。 プログラムでは、失敗ビットをクリアし、ストリームから無効な文字を除去して続行します。
// iostream_cin.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "enter choice:";
cin >> x;
while (x < 1 || x > 4)
{
cout << "Invalid choice, try again:";
cin >> x;
// not a numeric character, probably
// clear the failure and pull off the non-numeric character
if (cin.fail())
{
cin.clear();
char c;
cin >> c;
}
}
}
2
clog
clog
グローバル ストリームを指定します。
extern ostream clog;
戻り値
ostream
オブジェクト。
解説
このオブジェクトは、バイト ストリームとして、標準エラー出力へのバッファリングされている挿入を制御します。
例
clog
の使用例については、cerr
を参照してください。
cout
cout
グローバル ストリームを指定します。
extern ostream cout;
戻り値
ostream
オブジェクト。
解説
このオブジェクトは、バイト ストリームとして、標準出力への挿入を制御します。
例
cout
の使用例については、cerr
を参照してください。
wcerr
wcerr
グローバル ストリームを指定します。
extern wostream wcerr;
戻り値
wostream
オブジェクト。
解説
このオブジェクトは、ワイド ストリームとして、標準エラー出力へのバッファリングされていない挿入を制御します。 オブジェクトが構築された時点で、式 wcerr.flags & unitbuf
は 0 以外になります。 詳細については、 wcerr.flags
および unitbuf
を参照してください。
例
wcerr
の使用例については、cerr
を参照してください。
wcin
wcin
グローバル ストリームを指定します。
extern wistream wcin;
戻り値
wistream
オブジェクト。
解説
オブジェクトは、ワイド ストリームとして標準入力からの抽出を制御します。 オブジェクトが構築されると、wcin.tie
の呼び出しは &wcout
を返します。
例
wcin
の使用例については、cerr
を参照してください。
wclog
wclog
グローバル ストリームを指定します。
extern wostream wclog;
戻り値
wostream
オブジェクト。
解説
このオブジェクトは、ワイド ストリームとして、標準エラー出力へのバッファリングされている挿入を制御します。
例
wclog
の使用例については、cerr
を参照してください。
wcout
wcout
グローバル ストリームを指定します。
extern wostream wcout;
戻り値
wostream
オブジェクト。
解説
このオブジェクトは、ワイド ストリームとして、標準出力への挿入を制御します。
例
wcout
の使用例については、cerr
を参照してください。
wcout
ステートメントの CString
インスタンスは、次の例に示されているように const wchar_t*
にキャストする必要があります。
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
詳細については、「CString の基本操作」をご覧ください。
関連項目
ヘッダー ファイル リファレンス
C++ 標準ライブラリ内のスレッド セーフ
iostream プログラミング
iostreams の規則