問題タブ [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.

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

c++ - Windows XP および 7 を使用して「.txt」を特定のディレクトリに保存する

ofstream(C++ Builder)を使用してテキスト ファイルを特定のディレクトリに保存しようとしています。Windows 7 で問題が発生しています。

Windows 7 を使用して「.txt」ファイルを特定のディレクトリに保存するにはどうすればよいですか?

OBS: Windows 7 を使用してプログラムを保存すると、ファイルは次の場所に保存されます。

C:\Users\Name\AppData\Local\VirtualStore\Folder1\Name.txt

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

c++ - std :: ofstreamは、理由もなく、書き込まれたデータを繰り返して失います。

私はこのstd::ofstream::writeメソッドのめちゃくちゃ奇妙な振る舞いを目撃しました。私は、ビットマップをファイルに保存することを含む、WindowsのBMPファイル形式の独自の処理を書いています-これは紹介です。std::ofstreamこれは、オブジェクトへの参照を指定して、ビットマップファイルのヘッダーを書き込むためのサブルーチンです。

ここでマークする唯一のことは、sig1sig2が両方ともタイプcharsizeof(word) = 2およびであるということsizeof(dword) = 4です。このコードにより、ファイルに1バイトが2回書き込まれ、次に4バイトのチャンク、2つの2バイトのチャンク、最後に4バイトのチャンクが書き込まれます。

結果の16進ダンプを見てください(以下にもいくつかありますが、無視してください)。

sig1sig2は2回出力され、適切な値は実際にはとBM、最初と何らかの奇妙な理由で11バイト目と12バイト目にも出力されます。この行の中で他の値を認識していません。しかし、すべての間にデバッグバイトを追加するとどうなるか見てくださいwrite

16進ダンプは

それは完全に大丈夫のようです。重複はなく、文字列をバイト*のシーケンスに分割します。1-1-4-2-2-4誰かが私がこれの理由を見つけるのを手伝ってもらえますか?コンパイル時のバグですか?Mac OS X Leopardで-O2を使用gcc version 4.0.1 (Apple Inc. build 5490)していますが、他のレベルでは何も変更されていません。

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

c++ - ファイルへの書き込み時に、既存のファイルの内容が上書きされないようにする

ハイスコ​​アを .txt ファイルに実装するゲームを作ろうとしています。私が持っている質問はこれです:私が次のような声明を出すとき:

これはその名前のファイルを作成しますか、それとも単にその名前のファイルを探しますか?

問題は、プログラムを新たに開始して次のステートメントを作成するときはいつでもです。

それは私の以前のスコアを上書きします!

ファイルに書き込むときに新しいスコアが古いスコアを上書きしないようにする方法はありますか?

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

c++ - fstreamifstreamデータファイルをプログラムにロードする方法がわかりません

のプログラミング方法を知っていることを期待しています。fstream関数がどのように機能するのかわかりません。

3列のデータを含むデータファイルがあります。データの各行が円、長方形、または三角形のいずれを表すかを対数で判断する必要があります。その部分は簡単です。私が理解していない部分は、関数がどのようにfstream機能するかです。

私は思う:

次に、ファイルオブジェクトを宣言する必要がありますか?

それから私はそれを開きます:

適切な構文が何であるかわからず、簡単なチュートリアルを見つけることができません。すべてが私のスキルが処理できるよりもはるかに進んでいるようです。

また、データファイルを読み込んだら、データを配列に配置するための適切な構文は何ですか?

配列T[N]cinその中にfstreamオブジェクトHolesを宣言するだけでいいですか?

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

c++ - C ++を使用してファイルの特定の列に書き込む方法は?

C ++を使用して、各行の最後に行番号を追加する必要があるファイルを生成したいと思います。13行目以降に終了する行もあれば、32文字目以降に終了する行もあります。ただし、行番号は最後にする必要があります。行の長さは80文字で、行の最後の番号は行の80列目にある必要があります。

これを達成する方法はありますか?ofstreamを使用してファイルを初期化し、C++を使用します。

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

c++ - バイナリモードのファイルからバッファにチャンクを読み取り、そのバッファを別のファイルに書き込みます

私はこのようなことを達成しようとしています:

最初はwhile条件を使ってこれを達成しようとしifstream.eof()ましたが、これは道のりではないと聞いています。私はstd::ios :: ifstreamの他の関数を見てきましたが、他に何を使うべきか理解できません。

PS:転送されるファイルが非常に大きくなる可能性があるため、バッファを使用しています。

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

c++ - 論理ORを使用する|| 2つの整数を組み合わせるには?

std :: ofstreamを使用したファイル共有モードに関するこのMSDNの記事では、Microsoftは次のように書いています。

filebuf::sh_readとモードを組み合わせるにはfilebuf::sh_write、論理OR(||)演算子を使用します。

私が見る限り、両方の定数はタイプであるため、ビット単位のOR()の代わりに論理intORを使用する必要がある理由がわかりません。論理ORはブール値を生成するといつも思っていたので、結果を解釈する方法はありませんか?|

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

c++ - ポリモーフィック クラス データをファイルに書き込みますか?

だから私はこれらのクラスを持っています。基本クラスは 1 つありますが、それには多くの派生物が含まれます (派生する予定です)。これらの派生クラスも派生物を持つことができます。バイナリ データをファイルに書き込む関数が必要ですが、大量の派生クラスでこれを行う方法がわかりません。

私は次のようなことを考えていました:

しかし、このメソッドを実装した各派生クラスは、その親クラスのデータをすべて書き込む必要があり、それによって多くのコードが複製されます。

writeData()以前に記述したコードをすべて書き直さずにこれを行う最善の方法は何ですか?

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

c++ - 基本的な入出力C++エラー

私が欲しいのは、txtファイルを読み取り、各行を配列に入れてから、複製コピーを別のtxtファイルに出力するc++プログラムです。これが私のコードです...

どういうわけか、これをやっているのに、1行おきにファンキーな漢字がたくさん出てきます。これが私のdata.txtです...

そして、これが出力データです-2.txt ...

何か案は?

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

c++ - ofstream::write() 未処理の例外

そこで、あらゆる種類のものをログに記録するためのログ ライブラリを作成しています。テストを実行すると、クラッシュし続けました。ログメッセージを ofstream ファイルに書き込むときの書き込み関数に例外を絞り込みました。メッセージなどを解析してから、実際に ofstream::write() を呼び出します。再起動エラーが発生する部分は次のとおりです。

ご覧のとおり、try catch ブロックで呼び出しを行っており、ファイルが有効で開いているかどうかも確認しています。呼び出しとその周りにブレークポイントを設定すると、呼び出しは正常に機能しますが、関数の最後に到達すると、次のようになります。

LoggerTest.exe の 0x773515ee で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0xfeeefeee.

そして、xlock.cpp 内のこの関数で発生するエラーを示しています。

私の推測では、どこかに問題のある文字列またはポインターがあると思いますが、それを特定することはできません。

注:やってみました

そして今、ここでアサートの失敗を与えます:_ASSERTE(_CrtIsValidHeapPointer(pUserData));