私はC ++には少し慣れていません。ストリームから読み取るときは、左から読み取ることを理解しています。たとえば、次の行を含むファイルがある場合:
ストリームで遊んでいます
ファイルを読み取るとき、ファイルから取得する最初の文字列はI'm
取得する最初の文字列をstreams
基本的に、右からストリームを読み取ります。
注: これは、一度に行全体を読み取らないことを前提としています。
ストリームは左から右に読み取られるのではなく、最初から最後に読み取られます。これらは、これが論理的な読み取り方法であり、場合によっては (キーボード入力など) 唯一の賢明な読み取り方法である場合にモデル化することになっています。開始時に完全に認識されているストリーム (ファイルなど) の場合、本当に必要な場合は、苦労して最後の要素をシークし、それらを 1 つずつシークしながら読み取ることができます。これは遅くて醜いでしょう。
代わりに、通常の方法で最初から最後まで読み、取得したらデータを操作することをお勧めします。
いいえ、ストリーム ライブラリではこれはサポートされていません。ファイルは通常、文書データが左から右、上から下に配置されます。可変長の行を指定すると、通常、行内のすべてのデータをスキャンしない限り、行がどこで終了するかを知ることはできません。
この要件については、getline を使用して行全体を文字列に読み込むのが最善であり、次のような多くのオプションがあります。
あなたがしたいことは、ストリーム全体ではなく、単語を右から左に読むことです。ストリームを右から左に読み取ると、smaerts
not in になり、すぐにstreams
それを行うことはできないと確信しています。私が提案するのは、単語をベクトルで読んでから逆にすることです。または、読み取る前に文字列全体を反転し、読み取り後に各単語を反転します。