ストリーム (プログラミング)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ストリーム(stream)とは、データの入力または出力の機能を提供する抽象データ型である。ファイルの入出力を扱うもの、メモリバッファの入出力を扱うもの、ネットワーク通信を扱うものなどさまざまなものがある。
目次 |
[編集] C++
[編集] 入出力ストリーム
<iostream>ヘッダファイルには標準入出力ストリームとしてcout、cin、cerr、clog、およびワイド文字列用のwcout、wcin、wcerr、wclogが定義されている。
#include <iostream> int main() { std::cout << "Hello, World!" << std::endl; return 0; }
C++は強く型付けされた言語であるが、この標準入出力ストリームは多重定義によって全く型を意識せずに入出力を行える。さらにユーザー定義型も多重定義により定義できるため、非常に柔軟な入出力が可能である。さらに入出力操作子(マニュピレータ)の導入により、細かな制御が可能となった。
int i; std::string s; my_data_type d; std::cin >> i; // 整数の入力をiに読み込む。 std::cin >> std::setw(10) >> s; // 10文字読み込む。 std::cin >> d; // オーバーロードすることで任意のデータをdに読み込む。
これらの機能により、従来のprintf関数で起こりがちであった型の不一致や制御子の過不足によるバグの可能性がきわめて低くなった。しかしその半面、マニュピレータの仕様など覚えなければならない事が増加し、またタイプ数もprintfと比べ格段に増えてしまったため、敬遠するプログラマも多い。
[編集] 文字列ストリーム
<sstream>ヘッダファイルには文字列を対象としたストリーム操作の機能を提供するクラスistringstream、ostringstreamが定義されている。
[編集] .NET Framework
- System.IO.Stream
- 一般的なストリームのインターフェースを提供する抽象クラス。
- System.IO.FileStream
- ファイル入出力機能を提供するストリーム。
- System.IO.MemoryStream
- メモリバッファの入出力機能を提供するストリーム。
- System.Net.Sockets.NetworkStream
- ネットワークの入出力機能を提供するストリーム。
- System.IO.BinaryWriter / System.IO.BinaryReader
- ストリームに対してバイナリ形式での読み書き機能を提供するクラス。
- System.IO.TextWriter / System.IO.TextReader
- ストリームに対してテキスト形式での読み書き機能を提供するクラス。
- System.IO.BufferedStream
- 既存のストリームにバッファリング機能を追加するためのストリーム。
[編集] 関連項目
- C++
- Boost - boost::formatは安全なsprintf()であり、出力の際のマニュピレータの猥雑さを軽減する。
- 入出力
- ストリーム・プロセッシング
カテゴリ: コンピュータのデータ | 情報処理 | C++ | 抽象データ型