問題タブ [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 に答える
1873 参照

c++ - gcountが0を返してもC ++ iostreamがeofビットを設定しない

私は Windows でアプリケーションを開発しており、fstreams を使用してファイルの読み取りと書き込みを行っています。

私は次のように開いたfstreamで書いています:

このコマンドで書き込みます

書き込みごとにファイルを閉じる

次のように開いたifstreamで読む:

そしてこのコマンドで読む:

書き込みは順調です。しかし、私はこの方法でループを読みます:

ファイルの終わりに到達する必要がありますが、プログラムは読み取りを続けます。istellg pos は 0 で、gcount も 0 ですが、fail ビットと eof ビットはどちらも問題ありません。

私はこれに夢中です、助けが必要です...

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

c++ - C++ ファイル I/O の問題

テストの目的で、通常はコンテンツを含むファイルを開こうとしています。ファイルを使用可能/存在させずにプログラムを初期化したいので、プログラムは空のファイルを作成する必要がありますが、実装に問題があります。これはもともと私のコードです

ofstream、ifstream、ios::outすべてのバリエーションを追加して、考えられるすべてを試しました。問題を解決するために何をすべきかを誰かに説明してもらえますか。ありがとう!

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

c++ - c++が不明な型を関数と任意のクラス型定義に渡す

オブジェクトをファイルとの間で読み書きするためのジェネリッククラスを作成しようとしています。それをActiveRecordクラスと呼びました

クラス自体を保存するメソッドは1つだけです。

今、私はこのクラスをUserクラスで拡張しています:

ユーザーを作成して保存するには、次のようにします。

このActiveRecord::saveRecord()メソッドで任意のオブジェクトを取得し、クラス定義を取得して、送信したものをすべて書き込むにはどうすればよいですか?

のように見えるように:

そして、私たちがそれに取り組んでいる間、c++のデフォルトのオブジェクトタイプは何ですか。例えば。Objective-CではJavaではID、AS3ではオブジェクト、C++ではオブジェクトとは何ですか?

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

c++ - OfstreamはLinuxで空のファイルを書き込みます

ofstreamを使用して出力を書き込むプログラムがあります。Visual Studioでコンパイルした場合、Windowsではすべてが完全に正常に機能しますが、GCCでコンパイルした場合、Linuxでは空のファイルのみが書き込まれます。

書き込まれているディレクトリには0777特権があります。

奇妙なことに、何も書かれていませんが、エラーは報告されていません。

gcc --versionは次のとおりです:(Gentoo 4.3.4 p1.0、pie-10.1.5)4.3.4

私はコードが機能する必要があることを知っているので、直接のコード修正よりも、何が間違っている可能性があるかという提案を探すようなものです。

編集:fwriteはまったく同じ方法で失敗するようです(何も書き込まれず、エラーは報告されません)。

編集:GCCとプログラムの両方を大学のディレクトリでSSH経由で実行しています(意味がある場合)。私はファイルを実行して書き込むのに十分な許可を持っています(ls。> out.txtは問題なく動作します)、問題があるのは私のプログラムだけです。

手伝ってくれてありがとう

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

c++ - 奇妙なエラー:「int」から「ios_base::openmode」に変換できません

私はg++を使用していくつかのコードをコンパイルしています。私は次のスニペットを書きました:

そして、私はこれらのエラーを受け取ります...なぜですか?

エラー1:「int」から「std :: _ Ios_Openmode」への無効な変換<br>エラー2:「std :: basic_filebuf <_CharT、_Traits> * std :: basic_filebuf <_CharT、_Traits> :: open( const char *、std :: _ Ios_Openmode)[with _CharT = char、_Traits = std :: char_traits]'<p>

Google検索からわかる限り、g++は実際にここでC++標準を破っています。それらは一般的に非常に厳密に規格に準拠しているので、私は非常に驚くべきことだと思います。これは本当ですか?または私は何か間違ったことをしていますか?

標準の私のリファレンス:http ://www.cplusplus.com/reference/iostream/ofstream/open/

0 投票する
5 に答える
17602 参照

c++ - ofstream はフラッシュしません

次のコードを Suse 10.1 / G++ 4.1.0 で実行していますが、ファイルに書き込みません。

ファイルは正しく作成されて開かれていますが、空です。コードを次のように変更すると:

\n(テキストに a を追加)、機能します。オフストリームのフラッシュも試みましたが、うまくいきませんでした。

助言がありますか?

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

c++ - 文字列オブジェクトのベクトルをファイルに出力する

文字列オブジェクトのベクトルをファイルに出力しようとしています。ただし、私のコードは各文字列の最初の2つの要素のみを出力します。

以下のコードは次のように記述しています。

1
1

ファイルに。むしろその後:

2009年
7月1日2010年7月1日

それが私に必要なものです。

以前に同様のコンテキストで文字列オブジェクトを使用したことがあるため、何が問題になる可能性があるのか​​わかりません。

どんな助けでも大歓迎です!

0 投票する
5 に答える
3341 参照

c++ - ofstream はバッファをファイルに書き込みません

ofstream によって作成されたファイルに buf ポインタの内容を書き込もうとしています。

何らかの理由でファイルは空ですが、 buf の内容は決して空ではありません...何が間違っていますか?

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

c++ - 特定の位置でファイルへのデータの追加を再開する方法は? (std::ostream、streampos、tellp/seekp)

ファイルにデータを追加しようとしていますが、場合によっては、最後から少し戻ってファイルの末尾を上書きしたいことがあります。ただし、どちらseekp( pos )seekp( offset, relative )私には何の効果もありません(負のオフセットを使用する場合の不平を除いて)。間違って使用していますか、それとも壊れていますか?

少し例を次に示します。コンパイラ: gcc バージョン 4.4.4 (Debian 4.4.4-6)

ここで、0 オフセットを使用してシークすると、ファイルの最後に出力位置が配置され、書き込みが追加されますよね? まあ、それは私には効果がありません(osfは以前は空ではありませんでした):

追加の通常の方法は、 を使用することios::appです。この場合、追加は機能しますが、neg/pos オフセットでシークしようとしても効果がありません。(gcc doc から):

ios::app 各書き込みの前にファイルの最後までシークします。

また、どちらios::ateios::app(おそらく切り捨てモード) を使用して、 と同じ効果を得ようとしましたios::ate

これがバグレポートのように読める場合は申し訳ありませんが、ここでの使用に何か問題があるかどうかを確認し、seekpそれがコンパイラ固有のものであるかどうかを把握したかったのです。

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

c++ - ostreamオブジェクトがcoutまたはofstream、c++であるかどうかを確認します

C ++で、オブジェクトがオブジェクトであるかostreamオブジェクトであるかを確認する方法はありますか? coutofstream

何かのようなもの:

p>

これを実行したい理由は、<<使用するストリームのタイプに応じて、オペレーターをオーバーロードして2つの異なることを実行したいからです。

<<異なるタイプのストリームで毎回2回オペレーターをオーバーロードすることは可能ですか?

意図をよりよく反映するように更新されました。