問題タブ [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 投票する
2 に答える
2538 参照

c++ - 片方向リスト C++ ostream および istream -- メモリ アドレスを出力する

私はこれに本当に慣れておらず、現在、単一リンクリストを学習しています。私はいくつかのコードを書いていますが、本当に混乱しています。読み取りメソッドと書き込みメソッドを作成しようとしています。テストハーネスがありますが、変更できません。ストリームを読み取ってストリームを出力できるようにしたいだけなので、メモリアドレスが返されません。

誰かが本当に簡単な方法で説明して、このコードを修正するのを手伝ってもらえますか?

そしてヘッダーファイルで

ありがとう!

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

c++ - MSVCistream実装ロックバッファー

テキストファイルに保存されているオブジェクトを逆シリアル化する既存のコードを使用しています(これらの数千万を読み取る必要がある可能性があります)。ファイルの内容は最初にに読み込まれ、wstring次にそこから作成wistringstreamされます。プログラムでVerySleepyプロファイラーを実行すると、その時間の約20%が次の呼び出しスタックに費やされていることがわかります。

および同様のものstd::_Mutex::_Unlock。Visual C++2008を使用しています。

を見ると、基になる。を呼び出してメソッドを実行istreamするオブジェクトを構築していることがわかります。これにより、そのバッファに関連付けられた呼び出しが行われます。これらは次のように定義されます。sentry_Lock_Unlockbasic_streambuf_Lock_Unlock_Mutex

_MULTI_THREADが次のように設定されているようyvals.hです

これで、このバッファにアクセスしようとする別のスレッドが存在しないことはわかっていますが、標準のiostreamを使用している間は、このロックを回避する方法がないように見えます。これは奇妙でイライラするようです。私は何かが足りないのですか?これに対する回避策はありますか?

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

c++ - Istreamは最大N個の空白文字を消費します

演算子>>を適用するときに、固定数(つまり、1)の空白文字のみを消費するようにstd :: istreamに指示することは可能ですか?パラメータに解析したい文字列がありますが、一部のパラメータが空であるため、後続のoperator>>の呼び出しが失敗します。

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

c++ - istream >>ostream<<演算子のオーバーロード*ポインタ

>>および<<演算子がポインターを処理している場合、それらをオーバーロードするにはどうすればよいですか?

ヘッダー内:

CPPで:

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

c++ - libjpeg を使用して std::istream から JPEG を読み取る方法は?

FILE*libjpeg は、またはバッファから JPEG データを読み取ることができます。私のデータはstd::istream. 全体をバッファに読み込んで libjpeg で使用することもできますが、できればstd::istreamlibjpeg をバッファから直接読み込んでもらいたいと考えています。std::istreamこれはどのように行うことができますか?

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

c# - PInvokeとIStream

次の署名でc++で記述されたdllからエクスポートされた関数があります。

これはメモリストリームと明らかにそのサイズを返します。私が苦労しているのは、エクスポートされた関数の署名を作成してから、C#でストリームを読み取ろうとすることです。ある時点で、「安全でない」バイトポインタを使用して情報を取得できましたが、これは要件に適合していません。

任意の考え、例、サンプルなどをいただければ幸いです。

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

c++ - 文字列でistreamを使用する方法

ファイルを文字列に読み込みたいのですが。私はそれを効率的に行うためのさまざまな方法を探しています。

固定サイズの*charバッファーを使用する

Tonyから、16 kbのバッファーを作成し、そのバッファーを読み取り、読み取るものがなくなるまでバッファーを追加するという回答を受け取りました。私はそれがどのように機能するかを理解していて、それを非常に速く見つけました。私が理解していないのは、その回答のコメントでは、この方法ですべてを2回コピーすると言われているということです。しかし、私が理解しているように、それはディスクからではなく、メモリ内でのみ発生するため、ほとんど気付かれません。バッファからメモリ内の文字列にコピーするのは問題ですか?

istreambuf_iteratorを使用する

私が受け取った他の答えはistreambuf_iteratorを使用しています。コードは美しく最小限に見えますが、非常に低速です。なぜそれが起こるのか分かりません。なぜそれらのイテレータはとても遅いのですか?

memcpy()の使用

この質問に対して、 memcpy()は最速のネイティブメソッドであるため、使用する必要があるというコメントを受け取りました。しかし、文字列とifstreamオブジェクトでmemcpy()を使用するにはどうすればよいですか?ifstreamは独自の読み取り関数で動作するはずではありませんか?memcpy()を使用すると移植性が損なわれるのはなぜですか?VS2010およびGCCと互換性のあるソリューションを探しています。memcpy()がそれらで機能しないのはなぜですか?

+他に可能な効率的な方法はありますか?

10 MB未満の小さなバイナリファイルには、何をお勧めしますか、どのシェルを使用しますか?

(ifstreamを文字列に読み取る方法の違いの比較に興味があるので、この質問を部分的に分割したくありませんでした)

0 投票する
4 に答える
1838 参照

c++ - 関数経由でストリームを開く

s のコピー不可能な性質について助けが必要[io](f)streamです。

fstreamWindows でファイル名に Unicode 文字を含むファイルを処理するには、s の周りにハック的なラッパーを提供する必要があります。このために、ラッパー関数を考案しました。

もちろん、std::swapラインが犯人です。関数からストリームを返すことも試みましたが、同じ問題が発生します。a のコピー コンストラクタstd::istreamdeleted です。私も試してみましたstd::moveが、それは役に立ちませんでした。この問題を回避するにはどうすればよいですか?

編集:Keep It Simple (TM) @tiburのアイデアのおかげで、私はついに良い方法を見つけましたが、機能的です。使用されている Windows 標準 C++ ライブラリに依存するという意味ではまだハックですが、実際に使用されているのは 2 つだけなので、私にとってはそれほど問題ではありません。

そしてユーザーコードでは:

これは C++0x<memory>autoキーワードに依存します。もちろんclose、結果のstream変数だけを取得することはできませんが、GNU Libstdc++std::istreamデストラクタがファイルを閉じる処理を行うため、余分なメモリ管理はどこにも必要ありません。

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

ios - TCP経由でサーバーからiPodクライアントUIImageにIplImageを送信する方法

Berkeley_socketsを使用する Linux のサーバーがあり、iPod クライアントとの TCP 接続を作成します。IplImage* img;サーバーから iPod に を送信する必要があります。コマンドを使用し、write(socket,/*DATA*/,43200);送信しようとしたデータは次のとおりです: reinterpret_cast<char*>(img)imgおよびimg->imageData. これらの選択肢はすべて、実際にはあらゆる種類のデータを送信します。

iPod 側では、この方法でデータを受信します (SO でここで見たように。複雑なことは気にしないでください。単一のイメージからすべてのデータを受信するだけです)。

画像全体を受け取った後、私はこれを持っています:

今..私はiPodでopenCVを動作させることができることを知っていますが、それを動作させる方法についての簡単な説明を見つけることができないので、このWebページの2番目のコードを使用してそれを適応させました.私の画像の(たとえば、CGImageCreate()関数からすべての変数を設定します。):

}

問題:画像を表示すると、送信された画像が常に同じであるにもかかわらず、完全に奇妙で「ランダム」になります。私は本当に何が悪いのか分かりません..

PS: TCP 接続は、数字や単語などの他のデータで正常に機能しています。そして画像はグレースケールです。

すべての助けをありがとう。

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

c++ - std::istream から利用可能なバイト数を調べるにはどうすればよいですか?

read()aの内容をバッファーに入れたい場合はstd::istream、バッファーの大きさを知るために、まず利用可能なデータの量を調べる必要があります。そして、istream から利用可能なバイト数を取得するために、私は現在次のようなことをしています:

同様に、 std::istream::eof() は非常に有用なファンディング AFAICT ではないため、istreamの get ポインターがストリームの最後にあるかどうかを調べるために、次のようにしています。

私の質問:

から利用可能なバイト数を取得するより良い方法はありますistreamか? 標準ライブラリにない場合は、おそらくブーストで?