問題タブ [fstream]
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.
c++ - 構造体を含むベクターを .dat ファイルにシリアル化する際に何が間違っていますか?
入力すると
説明:アップル
数量: 10
卸売コスト: 30
小売価格: 20
追加日: 12月
これらは私の .dat ファイルの内容です:
1Apple10302012月
しかし、プログラムをロードすると、構造体が正しくロードされず、リストに項目が 0 になります。それが本来あるべき姿なのか、それとも私が何か重大な間違いをしているのだろうか。
コード:
c++ - whileステートメントの外に置くと、オフストリームが機能しないのはなぜですか?
何かをするたびに、メイン関数でwhile(1)が呼び出されると、ファイルがクリアされます。それは私を夢中にさせています。私はすべてを試しました。ofstreamをout( "data.dat");にしようとしています。while(1)ステートメントの外にあるため、毎回呼び出されるわけではありませんが、ofstreamが機能していないように、ファイルには何も書き込まれません。
ofstreamを静的にしようとしたので、次のように何度も呼び出されることはありません。
それはうまくいきません。
そして、私が言ったように、私がoffstreamをwhileステートメントの外に置くと、ファイルには何も書き込まれません。好き:
そして、誰かが空のファイルの読み取りを防ぐための私のチェックが機能しない理由を教えてもらえますか?
私のチェック:
ベクトルのサイズが2億に設定されているため、起動時にプログラムが何度もクラッシュすることにうんざりしています。私はこれのためにたくさんのものを試しました...それはどれもうまくいきません...神の誰かがこれらの両方で私を助けてください!私はこれに取り組んで18時間(一晩中はい)起きていて、ほとんど完了しています。お願いだよ....
私のコード:
c++ - ビットセットデータをファイルに書き込む方法は?
ファイルにビットごとに書き込みたいstd::bitsetがありますが、もちろんfstreamの書き込み関数はこれをサポートしていません。文字列を使用して各8ビットグループをcharに変換し、それを書き込む以外に、別の方法を考えることはできません...
誰かが良い方法を知っていますか?
c++ - fstream ファイルの部分を置換
私がする時
あたかも ios::trunc を指定したかのように、適切な 100 バイトだけを置き換えるのではなく、ファイル全体をそれらの 100 バイトで置き換えるようです。ファイルを切り捨てないようにする移植可能な方法はありますか?
編集: ios::in を追加するとうまくいくようですが、なぜこれが必要なのですか?それは標準的な動作ですか?
編集 #2:既存のファイルに追加しようとしていません。100 バイトを置き換える必要がありますが、残りは影響を受けません。
c++ - バイナリ モードでファイルの一部を置き換えるための seekp() の問題
バイナリ モードでファイルの一部を置き換えるときに問題が発生します。何らかの理由で、seekp() 行がファイル ポインターを目的の位置に配置していません。現在、目的の部分を置き換えるのではなく、ファイルの最後に新しい内容を追加しています。
私は何か間違ったことをしていますか?
よろしくお願いします。
c++ - ファイルの読み取り時に文字列の先頭にキャリッジリターンを追加するC ++
2 つの質問があります。
1) コードが selected_line 文字列の先頭に改行を追加するのはなぜですか?
2) ファイルからランダムな行を返すために使用しているアルゴリズムは十分であり、問題は発生しないと思いますか?
サンプル ファイルは次のとおりです。
私のコード:
編集: OK、あなたの何人かが提案したことは非常に理にかなっています。文字列はおそらく "\nmystring" として読み取られています。だから私は今私の質問だと思います、文字列から最初の \n をどのように削除しますか?
c++ - C++ のオーバーフロー チェーンで fstream ファイルを操作する
レコードを使用してバイナリ ファイルを読み書きしたいファイルがあります。最初は空のファイルがあり、新しいレコードを追加したいのですが、シーク機能を使用すると、場所が (-1) になります。チェックすると、ファイルに何も書き込まれていないことがわかります。コードを参照してください:
ファイルに何も書き込めない理由を誰かが教えてくれれば、本当に感謝します。
前もって感謝します、
グレッグ
c++ - std::fstreamファイルが2GBを超える
32ビットのstd::streamposを使用してstd::fstreamを実装する場合、どの戦略を使用する必要がありますか?位置を移動したい場合は、いくつかのステップで実行できます(10gb-10 x + 1gb)。どうすればポジションを取得できますか?または、fstreamの外部の変数で現在の位置を維持する必要がありますか?
PSSTLの実装を変更することはできません。
c++ - C++ fstream のリダイレクト
そのため、通常は実行時にログ ファイルに書き込みを行う C++ プログラムがあります。これは fstream を使用して行われます。ただし、ログをオフにする機能を含めたいと思います。基本的に、私のコードは次のようになります。
私のコード全体に、次のようなステートメントがたくさんあります。
ここで、「isLogging」が true の場合、これらを印刷したくありません。一連の if ステートメントでそれらを囲むこともできますが、それよりもクリーンなものを好むでしょう。C++ ストリームを取得し、それをリダイレクトして「何もない」ようにする方法があると考えたので、 << 演算子が使用されたときに何も出力されません。
ストリームをリダイレクトする方法を知っている人、またはこれをエレガントな方法で処理する方法について他のアイデアを持っている人はいますか?
ありがとう、コリン
c++ - メンバー関数を介して fstream からのストリームを開いたままにする
ファイル /dev/fb0 (Linux フレームバッファ) へのストリームをいくつかの Qt メンバー関数で開いたままにしようとしています。目標は、myscreen::connect 関数を使用してフレームバッファを開くことです。
これは、理想的にはフレーム バッファを開き、画面に書き込まれるデータのメモリ バッファとして機能する新しい QImage を作成します。次に、私の「画像」は、ビット()関数を介して画面上の最初の可視ピクセル(メモリ)を指します。ハードウェアがデフォルトのメモリ マッピングをサポートしていないため、これを実装する必要があります。
次に、次のように画面にブリットしたいと思います。
スコープで宣言されていない myscreen_Fb に関する GCC からの苦情を使用するために開いている最初の可視ピクセルへのポインターを取得できないようです。何か案は?
アップデート
提案された変更を行い、クラスで関数を宣言しましたが、このエラーが発生して気が狂いました。
以下を含む行を指します。
ブライス