私は、C++ プログラミングの復習として持っている C++ の教科書を読んでいます。練習問題の 1 つ (詳しくは説明しませんが) では、ifstream または cin (istream など) を引数として渡すことができる関数を定義する必要があります。そこから、ストリームを読み進める必要があります。問題は、この1 つの関数で cin と ifstream を使用してストリームの末尾を効果的に検出する方法がわからないことです。すなわち、
while(input_stream.peek() != EOF)
シンではうまくいきません。特定のフレーズ (「#End of Stream#」など) を探すように関数を作り直すこともできますが、渡すファイル ストリームにこの正確なフレーズが含まれている場合、これは悪い考えだと思います。
私は関数のオーバーロードを使用することを考えましたが、これまでのところ、本は私がこれを行うことを望む場合について言及しています。私はおそらくこの 1 つの練習問題に力を入れすぎていますが、私は創造的なプロセスを楽しんでおり、オーバーロードせずにこれを行う方法があるかどうかに興味があります.