問題タブ [seekg]

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 に答える
12967 参照

c++ - C ++でバイトのチャンクでファイルを読み書きする

私はどこでもそれを検索しましたが、ios::cur の使用方法を理解できないようです。ファイル全体を 10 バイト単位で読み取り、それらのバイトをバッファーに書き込み、そのバッファーを別のファイルに書き込む必要があります。そのために、最初の 10 バイトを送信し、次に次の 10 バイトなどを送信します。しかし、ポインターが最後の反復の位置から開始するようにするにはどうすればよいですか?

0 投票する
0 に答える
182 参照

c++ - 空の文字列ストリームで呼び出すと、seekg が失敗する

これが私の問題です。stringstream から文字列を数回読み取りたいので、 seekg(0)を使用して現在の位置をストリームの先頭にリセットします。

しかし、stringstream は空の文字列のオフセットを -1 に初期化するようです。次に、offest をチェックする seekg は、failbit エラーを設定します。

このケースを処理するアイデアはありますか?

注意:私はVS2005を使用しています。

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

c++ - fstream seek: 位置は -1 のまま

特定のファイル形式を処理するためのクラスを作成しました。そのコンストラクターはファイルを調べて、必要な重要な情報を検索します。つまり、文字は複数の行に書かれているので、すべての行の最初の文字を読みたいのです。すべての行の 2 番目の文字など。

以下にコンストラクターと定義を示します (おそらく恐ろしい - C++ で本格的なものを書くのはこれが初めてです)。

とにかく、コンストラクターは char ごとに char を調べて、読み取る各行の開始点を取得します。get 関数 (図示されていません) は、メンバー変数 CurrentPos によって指定された、各行の先頭 + 正しい文字に到達するまでの残りの数を探します。次に、AlignedPosition という別のカスタム オブジェクトを作成して返します。

ご覧のとおり、最初のループは各行の開始位置 + CurrentPosition を繰り返し処理し、char を取得してベクターにプッシュします。このベクターは、AlignedPosition コンストラクターに渡されます。それ以外はすべてデバッグ用のメッセージです。ただし、実行すると次のように表示されます。

要するに、ファイル ストリームの位置が -1 であり、シークが使用されても変更されないことがわかります。これにより、無効な文字が発生し、AlignedPosition コンストラクターで例外がスローされます。これは、コンストラクターで最後までファイルを既にナビゲートしたことと関係がありますか? 入力ストリームでの位置が常に -1 のままなのはなぜですか?

ありがとう、ベン。

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

c++ - C++ での seekg の使用に関する問題

次のような関数を使用してファイルを読み取っています。

Mi ファイルには 3 行あります。

私は出力を期待していました:

代わりに私は得る:

シークが機能しないのはなぜですか?

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

c++ - istream::seekg の使用は高すぎますか?

c++ では、istream::seekg 操作を使用するとどれくらいコストがかかりますか?

編集:ファイルを探し回ってバイトを読み取ることで、どれだけ逃げることができますか? 周波数対オフセットの大きさはどうですか?

解析中の大きなファイル (4 GB) があり、seekg 呼び出しの一部を統合する必要があるかどうかを知りたいです。ファイルの場所の違いの大きさが役割を果たすと思います.たとえば、メモリ内のページを超えてシークするとパフォーマンスに影響します.しかし、小さなシークは重要ではありません. これは正しいです?

0 投票する
0 に答える
116 参照

c++ - 私のプログラムを終了させる抽出演算子?

常連ですが初投稿です!細かいところが好きなのはわかりますので、頑張ります。誰からの情報も歓迎します。

数字の動的配列を持つオブジェクトの抽出演算子のオーバーロードに取り組んでいます。コンソール入力の先頭には空白があり、次に int があり、その後に何かが続きます。空白を無視して int を抽出し、残りはそのままにしておく必要があります。簡単でしょ?

オンラインで見つけたコードの例を次に示します。

今、私はこの方法がうまくいくかもしれないことを理解していますが、私には非常に非効率的な方法のように思えます. 1 兆桁の数値の場合、Grow() は配列を 1 兆回再割り当てします! おそらく、これは私が思っているほど悪くはありませんか?

私の現在の方法は、seekg() と peek() と get() を使用しています。そのようです:

また、ここに私のメインがあります:

私の人生では、プログラムが終了する原因を見つけることができません。最後の出力は、「B is now: -1」と言っているようです

これは << B が失敗したことを意味すると思います。現在、B は 0 に初期化されており、残りのコードでは他の問題は発生していません。プライベート メンバー データには、ポインターと長さ (桁数) のみが含まれます。また、C2I() は「0」から「9」を 0 から 9 に変換する関数です。

私にとって大きな問題は、私が解析にかなり慣れていないことです。そのため、これをテストするための非常に雄弁な方法や他のアイデアを持っていません。

繰り返しになりますが、皆さんのすべてのことに感謝しています。ここを閲覧することで、すでに多くのことを学びました。

0 投票する
0 に答える
66 参照

c++ - 既に開いているファイルを上書きする方法は?

次の問題があります。

私のプログラムはファイルを開き、そのすべてのコンテンツをベクターにコピーします。その後、ファイルの先頭に戻って、別の順序で内容を書き直す必要があります。

と を使用してみclearましseekpたが、うまくいきませんでした。誰でも私を助けてもらえますか?

これはコードです:

first_index私が作業しているファイルです: