ストリームという用語を使用している人をよく見かけますが、それが何を意味するのか正確にはわかりません。そして、標準とはどういう意味ですか?端末からの入力と端末への出力を意味しますか?stderrはどうですか?いつ使用する必要があり、どのような効果がありますか?
次に、独自のストリームを作成できますか?そして、なぜそれを作成する必要があるのですか?
型理論では、ストリームは単なるデータの無限リストです。
ただし、C または C++ では、通常、無限のソースまたは無限のシンクと見なされます。もちろん、無限というのはほとんどの場合嘘です。
source
とのsink
ほうが便利だと思います。stderr
文字のシンクを考えることができます。プログラム側からすれば、何の影響もなく文字を消費するだけのものです。
もちろん、ストリームを作成できます (ソースまたはシンクのいずれか、または両方を同時に)。
ストリームという用語を使っている人をよく見かけますが、その意味を正確に理解することはできません
C++ は、ファイルへの/からの文字の出力および入力を実行するために、次のクラスを提供します。
ofstream: Stream class to write on files
ifstream: Stream class to read from files
fstream : Stream class to both read and write from/to files.
私は常にストリームを、ファイルに対して操作を実行するためのファイルハンドルのようなものと考えています。
そして、標準とはどういう意味ですか?
C++ では、C++ 標準ライブラリはクラスと関数のコレクションです。
C++ 標準ライブラリには、数値の平方根を求めるなどのタスクのためのいくつかの日常的な関数が用意されています。
C++ 標準ライブラリの機能は、std.int 名前空間内で宣言されています。
stderr はどうですか?
標準エラー ストリームは、エラー メッセージやその他の診断警告の既定の送信先です。stdout と同様に、通常は標準コンソールの出力デバイスにも送信されます。
freopen 関数を使用して、プログラム内から stderr を他の宛先にリダイレクトすることもできます。
次に、独自のストリームを作成できますか? そして、なぜそれを作成する必要があるのでしょうか?
これはあなたを導きます
ストリームはstd::ios_baseから派生したクラスです。ランダム アクセスと比較して要素を次々と提示します。適切なコンストラクターを呼び出して作成します。独自のストリームを実装する場合は、ios_base から派生させ、それに応じてすべてのメソッドを実装します。