問題タブ [istream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
784 参照

c++ - テンプレート化された関数で istream から bool を抽出する

フィールド クラスの読み取り関数を 1 つのテンプレート関数に変換しています。と のフィールド クラスがint, unsigned int, long,ありunsigned longます。これらはすべて、から値を抽出するために同じ方法を使用しますistringstream(型のみが変わります)。

トリッキーな部分はbool(ブール) 型にあります。
0, 1, T, F, TRUE, FALSEBoolean:には多くのテキスト表現があり、大文字と小文字を区別しないすべての組み合わせがあります

質問は次のとおりです。

  1. C++ 標準ではbool、ストリーム抽出演算子を使用して a を抽出するための有効なデータとは何ですか?
  2. Boolean はテキストで表すことができるので、これにはlocales が含まれますか?
  3. これはプラットフォームに依存しますか?

入力用の独自のハンドラーを作成しないことで、コードを簡素化したいと考えていboolます。

MS Visual Studio 2008 (バージョン 9)、C++、および Windows XP と Vista を使用しています。

0 投票する
1 に答える
1537 参照

c++ - std ::istreambuf_iterator<>からstd::vector<>にコピーする

ストリームをイテレータのセットとして扱いたいVisualStudio2008C++アプリケーションがあります。

たとえば、ストリームを介してWIN32_FIND_DATA構造体の配列を受信する場合、次のようなことができるようにしたいと思います。

これを実現するために、次から派生したクラスを定義しましたstd::basic_streambuf<>

私が理解できないのは、sの配列からbytesの配列に優雅に移行する方法WIN32_FIND_DATAです。std::basic_streambuf<>テンプレートパラメータが必要なため、またはのような構造体ではなく、またはstd::char_traits<>のような組み込み型のみを使用できるという印象を受けています。正しい?charbyteWIN32_FIND_DATA

これを機能させる方法について何か提案はありますか?

ありがとう、PaulH

0 投票する
1 に答える
5709 参照

c++ - istreamからの読み取り

演算子>>()を使用せずにistreamからデータ(コンテンツ)を抽出するにはどうすればよいですか?

0 投票する
1 に答える
2162 参照

c++ - libcurl を使用して、リモート ファイルを istream として読み取ることはできますか?

libcurl ライブラリを使用してリモートの日付ファイルを開き、istream で反復処理したいと考えています。このスレッドの素敵な例を見てきましたが、リモート ファイルをローカル ファイルに書き込みます。代わりに、その後のプログラムによる操作のために、リモート読み取りを istream にプッシュしたいと考えています。これは可能ですか?助けていただければ幸いです。

ベスト、アーロン

0 投票する
5 に答える
4044 参照

c++ - 非コピー istringstream

したがってistringstream、初期化時に文字列の内容をコピーします。

ものをコピーせずにstd::istringstream、指定されたをバッファーとして使用する方法があるかどうか疑問に思っていました。このように、引数として取る関数c_strに渡す前に大量のメモリをコピーする必要はありません。std::istringstream&istream&

私がやろうとしているのは、std::ifstream&引数を取るだけのいくつかの関数 (それらはほとんどパーサーです) をistream&同様に取るように変換することです。このために独自のistreamサブクラスを作成する必要がありますか?

0 投票する
1 に答える
2269 参照

windows - Windows IStream を使用してファイルをダウンロードする

仮想ファイルを Web サイトから ActiveX コントロールを使用してデスクトップにドラッグすることを実装しています。

Windows がドロップを実行できるように、http URL にIStreamを作成するにはどうすればよいですか?

私が見ている例では、SHCreateStreamOnFileを使用してローカル ファイルをコピーしています。http ファイルのダウンロードなど、他のタイプのストリームにも同様の機能が必要です。

0 投票する
1 に答える
2491 参照

c++ - カスタム istream/streambuf に seekg() を実装するにはどうすればよいですか?

私は 10 年前は C++ の専門家でしたが、ここ 10 年間は Java をプログラミングしてきました。小さなサードパーティの XML パーサーを使用する C++ プロジェクトを開始しました。XML パーサーは、STL istream を受け入れます。私の XML データは Windows COM IStream から来ています。私は、Right Thing を実行して、IStream データを取得し、istream を介して XML パーサーに提示するアダプターを作成すると考えました。

http://www.mr-edd.co.uk/blog/beginners_guide_streambufの優れたチュートリアルに従い、基になる COM IStream からデータを取得する COMStreambuf を作成し、それをカスタム COMIstream のバッファーとして使用しました。すべて問題ないように見えますが、パーサーから読み取りエラーが発生します。

パーサーは、istream で seekg() を使用してファイル全体をメモリに読み込み、そのサイズを調べてから、seekg() で最初に戻って一度に読み込みます。当然のことながら、前述のチュートリアルでは、明らかに書かれたことのない「[シークの実装に関する指示] を別の投稿のために保存する」ことにしました。

カスタム istream/streambuf で seekg() を実装するために何をする必要があるか教えてもらえますか? 私は自分でそれをやってみようと思います (私の最初の傾向は、istream で何かをオーバーライドすることです) が、STL の深部での経験が浅く、Java のメンタリティがあるため、何か不完全なことをして脆弱な解決策になるのではないかと心配しています。(たとえば、チュートリアルを読まなければ、たとえば、新しい streambuf を記述してカスタム istream を作成したり、デフォルトのロケールで imbue() を呼び出す必要があるなどとは思いもしませんでした。)

助けてくれてありがとう。私はこのサイトに非常に感銘を受けました.---参加者の知識と、誰が最良の答えを持っているかを認める友好的で正直な性格の両方に. :)

0 投票する
3 に答える
1362 参照

c++ - ifstreamを使用したgetline()の予期しない動作

簡単にするために、ifstreamクラスとそのgetline()メンバー関数を使用してCSVファイルのコンテンツを読み取ろうとしています。これがこのCSVファイルです:

そしてコード:

getlineは、最後の読み取り以降に書き込まれたものを取得し、「、」、または「\ n」に遭遇すると停止することを想定しているため、すべての数値が読み取られることを期待しています。

しかし、「4」、つまり2行目の最初の数字(コンソールを参照)を除いて、すべてをうまく読み取るようです。

したがって、私の質問:getlineがそれを考慮に入れようとさえしないほど(私が推測する)'\ n'の後にこの'4'を作るのはなぜですか?

(ありがとうございました !)

0 投票する
3 に答える
20613 参照

c++ - cin と ifstream のストリームの終わりを見つけますか?

私は、C++ プログラミングの復習として持っている C++ の教科書を読んでいます。練習問題の 1 つ (詳しくは説明しませんが) では、ifstream または cin (istream など) を引数として渡すことができる関数を定義する必要があります。そこから、ストリームを読み進める必要があります。問題は、この1 つの関数で cin と ifstream を使用してストリームの末尾を効果的に検出する方法がわからないことです。すなわち、

シンではうまくいきません。特定のフレーズ (「#End of Stream#」など) を探すように関数を作り直すこともできますが、渡すファイル ストリームにこの正確なフレーズが含まれている場合、これは悪い考えだと思います。

私は関数のオーバーロードを使用することを考えましたが、これまでのところ、本は私がこれを行うことを望む場合について言及しています。私はおそらくこの 1 つの練習問題に力を入れすぎていますが、私は創造的なプロセスを楽しんでおり、オーバーロードせずにこれを行う方法があるかどうかに興味があります.

0 投票する
2 に答える
989 参照

c++ - なぜistream_iteratorなのかstd :: bad_castをスローしますか?

何が起こっている?

stream.write(some_array, sizeof(some_array)イテレータを作成する前に試しましたが、役に立ちませんでした。

ありがとう。