コンテンツにスキップ

「ストリーム (プログラミング)」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Loveless (会話 | 投稿記録)
m robot Adding: pt:Stream
54行目: 54行目:


[[en:Stream (computer)]]
[[en:Stream (computer)]]
[[pt:Stream]]

2007年6月15日 (金) 22:28時点における版

ストリーム(stream)とは、データの入力または出力の機能を提供する抽象データ型である。ファイルの入出力を扱うもの、メモリバッファの入出力を扱うもの、ネットワーク通信を扱うものなどさまざまなものがある。

C++

入出力ストリーム

<iostream>ヘッダファイルには標準入出力ストリームとしてcoutcincerrclog、およびワイド文字列用のwcoutwcinwcerrwclogが定義されている。

#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>ヘッダファイルには文字列を対象としたストリーム操作の機能を提供するクラスistringstreamostringstreamが定義されている。

.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
既存のストリームにバッファリング機能を追加するためのストリーム。

関連項目