問題タブ [ofstream]
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++ - ofstream を使用してテキストをファイルの末尾に書き込む
ofstream を使用して、ファイル内のコンテンツを消去せずにファイルの末尾にテキストを書き込むにはどうすればよいですか?
c++ - 文字列ストリームの内容を ofstream に書き込む
私は現在、次のように使用std::ofstream
しています:
std::stringstream
次に、次のようにオブジェクトを渡そうとoutFile
します:
今、私outFile
にはゴミしか含まれていません:「0012E708」がずっと繰り返されています。
でGetHolesResults
私は書くことができます
で正しく出力されoutFile
ます。
私が間違っていることについて何か提案はありますか?
c++ - cout を変数名に割り当てる
ANSI C++ では、cout ストリームを変数名に割り当てるにはどうすればよいですか? 私がやりたいことは、ユーザーが出力ファイル名を指定した場合はそこに出力を送信し、そうでない場合は画面に送信することです。次のようなものです:
これをマクロ関数としても試しました:
しかし、それによってコンパイルエラーも発生しました。
すべての出力に IF-THEN ブロックを使用できると思っていましたが、できればそれは避けたいと思います。何か案は?
c++ - 7zアーカイブ形式のバイナリデータを書き込むにはどうすればよいですか?
7zアーカイブ形式の形式の説明とソースコードを注いでいますが、有効なコンテナを作成するのにまだ問題があります。空のコンテナを作成できると思います...とにかくここから始めます:
私の主な問題は、std :: ofstream :: write()の理解不足だと思います。バイトは「unsignedchar」であり、UInt64とUInt32は両方とも「unsignedlong」です。
UPDATE0:誰もが指摘しているように、これをビッグエンディアンのマシンで実行すると問題になります。ここではそうではありません。Fredrik Janssenによると、非配列のアドレスをキャストする必要があります。また、CrcCalc()はLZMASDKの関数であることにも言及する必要があります。&を少し追加すると、いくつかの問題が発生しているのは、最初のunsignedchar[6]です。
UPDATE1:以下の空のアーカイブファイルを取得するための作業コード。
注:CrcGenerateTable()およびCrcCalc()は、LZMASDKからのものです。
c++ - オフストリーム エラー
これは私が尋ねた別の質問に関連していますが、それは完全に独自の質問です。
コンパイルすると、次の 2 つのエラーが発生します。
1>.\asst4.cpp(73): エラー C2065: 'outfile': 宣言されていない識別子
1>.\asst4.cpp(73): エラー C2228: '.close' の左側にはクラス/構造体/共用体が必要です
ここで間違ったことをしたことについて少し混乱していますか?推奨事項やアイデアはありますか?(実際の出力ファイルはコードの上部にあります。
完全なコードは次のとおりです。
お早めにどうぞ!ジェフ
c++ - ASCII の char の 16 進値をテキスト ファイルに書き込むにはどうすればよいですか?
これが私が現在これまでに持っているものです:
stream.hex、stream.setf( std::ios::hex ) を試し、Google で少し検索してみました。私も試しました:
しかし、それもうまくいかないようです。
現在生成されている出力の例を次に示します。
出力を次のようにしたいと思います。
c++ - オフストリームで fsync を実行するには?
オフストリームがディスク デバイスに書き込まれていることを確認したいと考えています。これを行う移植可能な方法 (POSIX システムで移植可能) は何ですか?
読み取り専用open
追加モードでファイルを個別に取得してファイル記述子を取得し、それを呼び出すと、問題は解決しますか? このような:fsync
c++ - C++で循環ファイルを書く
C++で循環ファイルを書く必要があります。プログラムはファイルに行を書き込む必要があり、コードが最大行数に達すると、ファイルの先頭の行を上書きする必要があります。
誰か考えがありますか?
c++ - C++ を使用したファイルとディレクトリの書き込み
私は、2000 個のディレクトリを作成し、それぞれにファイル (わずか 10KB 程度のファイル) を配置するプログラムに取り組んでいます。mkdir を使用してディレクトリを作成し、ofstream (fopen も試しました) を使用して、ファイルをソリッド ステート ドライブに書き込みます (比較のために速度テストを行っています)。
コードを実行すると、ディレクトリは正常に作成されますが、ファイルは 1000 程度書き込まれた後に書き込みを停止します。ある種の過負荷の場合に備えて、各書き込みの前に遅延を入れてみました。また、ofstream の代わりに fopen を使用しようとしましたが、常に 1000 番目のファイル マークの周りでファイルの書き込みが停止します。
これは、ファイルを書き込んで終了し、失敗したファイルを通知するコードです。
誰かがこれを経験したことがありますか、または理論を持っていますか?
完全なコードは次のとおりです。このコードは、乱数から 2 桁の 16 進数のディレクトリを作成し、次に乱数から 4 桁の 16 進数のディレクトリを作成し、そのディレクトリにファイルを保存します。1000 個のファイルを書き込んだ後、「fail at point」(私が追加した cout) で終了します。これは、ファイルを作成できないことを示していますが、ファイルが存在しないことは既に確認されているはずです。一番下の行から 2 番目にヒットした 0 で失敗することがあります (ファイルが既に存在する場合の else 句)。助けていただければ幸いです。作成しようとしている既存のファイルに関係していると思いますが、ファイルの存在チェックで何らかの形でずれてしまいました。ファイルの作成に失敗したときにエラー メッセージを表示する方法はありますか?
c++ - 出力をofstreamに簡単にインデントする方法は?
ofstreamオブジェクトに送られる出力をインデントする簡単な方法はありますか?nullで終了し、改行を含むC++文字配列があります。これをストリームに出力したいのですが、各行を2つのスペースでインデントします。ストリームへの特別なディレクティブを使用して整数出力のベースを変更できるように、ストリームマニピュレーターでこれを行う簡単な方法はありますか、または配列を手動で処理し、検出された改行ごとに手動で余分なスペースを挿入する必要がありますか?
string :: right()マニピュレーターが近いようです:
http://www.cplusplus.com/reference/iostream/manipulators/right/
ありがとう。
-ウィリアム