2012-08-27 6 views
33

私は、ストリーム、より具体的にはファイルストリームについて聞いています。C++:ストリームとは

だから何ですか?

メモリ内に位置情報を持っていますか?

データが入っていますか?

ファイルとオブジェクトの単なる接続ですか?

すべてのヘルプは長期的な流れは、あなたがバイトの不明な番号を送信または受信することを可能にする構造を抽象化したものです

答えて

39

をいただければ幸いです。比喩は水の流れです。あなたはデータをそのまま受け取り、必要に応じて送信します。これは、固定長の既知の長さなどの配列とは対照的です。

ストリームが使用される例には、ファイルへの読み書きと、外部接続を介したデータの送受信が含まれます。しかし、用語のストリームは一般的なものであり、特定の実装については何も言及していません。

+2

これは、ソースから目的地まで流れる「川」のようなものです。そして流れは川そのものです –

+0

概念的に、あなたはそれをそのように言うことができます。 –

+1

したがって、私はストリームを、(例えば)コンソールからvariabelへのデータをもたらすものと見なすことができます –

8

IOStreamsは、入出力機能を定義するために使用されるフロントエンドインターフェイス(std::istream,std::ostream)です。ストリームには、整数出力に使用するベースなどの書式設定オプションも格納され、すべての種類のカスタマイズにオブジェクトstd::localeが保持されます。それらの最も重要な構成要素は、文字、例えば文字列、画面上の領域などの文字列にアクセスする方法を定義するstd::streambufへのポインタである。特に、ファイルおよび文字列のために特別なストリームバッファが提供され、簡単な作成のためにストリーム基本クラスが用意されています。 IOStreamsライブラリの全機能を記述することで、本全体をかなり埋めることができます.C++ 2003では、ライブラリのセクションの約半分が関連する機能をストリーミングするために費やされました。

2

ファイルシステムは、端末、ディスクドライブ、テープドライブなど、さまざまなデバイスで動作するように設計されています。各デバイスは異なりますが、ファイルシステムはそれぞれ論理デバイスというストリームに変換されます。ストリームはデバイスに依存しないので、同じ機能を使用してディスクファイルとテープファイルを書き込むことができます。より専門的な用語では、ストリームは、使用されるプログラマと実際のデバイスとの間の抽象化を提供する。

5

ストリームは、ファイルをプログラムに接続し、両方向のデータフローを維持するリニアキューです。ここでは、ソースなどの任意のファイル、I/Oデバイス、ハードディスク、CD/DVDで

は基本的にストリームがあれば2種類1.Textストリーム2.Binaryストリーム

テキストストリームである:それは、一連のです文字は改行で整列し、各行は改行で終わります(unix)。

バイナリストリーム:コンピュータのメインメモリに内部的にコード化されたデータで、変更はありません。

+0

私は帰り2012年にこの質問をした: "Dは奇妙な、それはまだ、今注目を集めて見に –

+0

この答えは理解し、はるかに簡単です、ありがとうございます。! –

関連する問題