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

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

c++ - fstream を使用してバイナリ ファイルをロードする

次の方法でバイナリファイルをロードしようとしてfstreamいます:

しかし、うまくいきません。Ubuntu では、std::bad_cast例外でクラッシュしました。MSVC++ 2008 では、単に 0 を出力します。

ファイルのロードに使用できることはわかっていfile.readますが、イテレータを使用しoperator>>てファイルの一部をロードしたいと考えています。それは可能ですか?上記のコードが機能しないのはなぜですか?

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

c++ - デフォルトで構築された fstream への書き込み: 未定義の動作?

次の点を考慮してください。

これは、VC 8.0 でビルドすると問題なく動作しますが、VC 10.0 ベータでビルドするとクラッシュします。

VC 8 の動作に実際に依存しているレガシー コードがいくつかあります。ここでは、basic_fstream から継承して機能を追加します。

ディスク I/O を発生させずに追加の状態を検査することが有益な場合があります (テスト書き込みなど)。

これは未定義の動作だと思いますが、VC 8 でクラッシュしないことは幸運です。そうは言っても、VS 2010 ベータ版を評価する際に十分な問題があったことを確認したいと思います。はっきりと断言できる人はいますか?

編集: VS 2010 のコール スタック:

VS 2005 のコール スタック:

また、Ubuntu で gcc-4.3.3 を使用すると、エラーなしでコンパイルおよび実行されます。

*** 編集:

さらに掘り下げた結果、これは実際には Visual Studio 2010 Beta 1 のバグであることがわかりました。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=456890

このレポートによると、公式リリース用に修正されています。

ご意見をお寄せいただきありがとうございます。

0 投票する
6 に答える
3083 参照

c++ - ダブルとして宣言された変数をC++のテキストファイルにどのように出力しますか

私はC++に非常に慣れていないので、doubleとして宣言された変数をtxtファイルにどのように出力/書き込みするのか疑問に思っています。fstreamを使用して文字列を出力する方法は知っていますが、他のものを送信する方法がわかりません。文字列以外はテキストファイルに送信できないと思い始めていますが、それは正しいですか?もしそうなら、変数に格納されている情報を文字列変数にどのように変換しますか?

これが私がこの概念を実装しようとしている私のコードです、それはかなり単純です:

だから私がやろうとしているのは、それらの変数を使ってテキストファイルに出力することです。また、このソースコードに使用する必要のあるインクルードについて教えてください。他の方法でもコードを改善する方法について、遠慮なく提案してください。

前もって感謝します。

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

c++ - Xcode C++ でのファイル ストリーム/fstream の問題

テキスト ファイルに出力する簡単なプログラムを次に示します。

自分のテキストファイルに書き込まれてしまうのは「答えはほぼ」ということだけで、データがまったく表示されません。私は何を間違っていますか?または、Xcode を IDE として使用しているため、Xcode に問題がある可能性があります。

0 投票する
8 に答える
87567 参照

c++ - ファイルが存在し、C++ で読み取り可能かどうかを確認する方法は?

fstream my_file("test.txt") を取得しましたが、test.txt が存在するかどうかわかりません。もしあれば、私も読めるか知りたいです。どうやってするか?

Linux を使用しています。

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

c++ - バイナリデータの書き込み

fstreamを使用してバイナリファイルに書き込んでおり、バイナリフラグを使用してファイルを開いたとき。

私はいくつかのテキストをバイナリとして書く必要がありましたが、それは簡単な書き込みでうまくいきました。問題は、(16進数で表示されるように)0も書き込む必要があることです。2進数のメモ帳で開いたときの値はゼロと表示されますが、これをゼロではなく書き込もうとすると、16進数で30の値になります。

このような特定のデータをどのように記述しますか?

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

c++ - Visual Studioは、ファイル管理操作を実行するときにtxtファイルをどこで検索しますか?

これは初心者の質問ですが、Pythonを使用したことがあります。たとえば、.txtファイルにアクセスしたい場合は、txtファイルが同じディレクトリにあることを確認するだけで済みます。以下のC++コードがありますが、デスクトップに保存したNumbers.txtファイルが見つかりません。私がファイルに持っているのは、double型の数字の1行だけです。私がやりたいのは、ファイル内のすべての数値の平均を見つけることです。プログラムは正常に実行されますが、出力が正しく印刷されません。output [0]を出力するだけで何が出力に出力されているかを確認したところ、ファイルがその内容を配列にコピーしていないことがわかりました。誰かが私のためにこの小さな問題を解決することができますか、または少なくとも私を良いチュートリアルへの正しい方向に向けることができますか?

0 投票する
6 に答える
7797 参照

c++ - C++ ファイルへのオブジェクトの保存

後で取得できるように、できるだけ小さなファイルに保存したいオブジェクトのリストがあります。私はこのチュートリアルを注意深く読んでおり、理解し始めています (と思います) が、いくつか質問があります。ここに私が取り組んでいるスニペットがあります:

今、これはスニペットから適応されています

チュートリアルから取得。今私が信じているのは、オブジェクトをポインターに変換し、値とサイズを取得してファイルに書き込むことです。しかし、これを行っているのであれば、わざわざ変換を行う必要はありません。最初から値をとらないのはなぜですか?そして、なぜサイズが必要なのですか?さらに、私の理解では、なぜ

コンパイルしない?i は反復子です (反復子はポインタではありませんか?)。または単に

とにかくアドレスをいじる必要があるのはなぜですか? データをファイルに保存していませんか? アドレス/値が独自に保持されている場合、プレーンテキストで区切られたアドレスを保存して、後で値を取得できないのはなぜですか?

また、.txt 拡張子を引き続き使用する必要がありますか? <編集>代わりに何を使用すればよいですか? .dtb を試しましたが、ファイルを作成できませんでした。< /edit> ios::binary フラグを使用すると、実際にはエラーなしでファイルを開くことさえできないようです。ファイル名を渡すのにも問題があります(c_str()によって変換された文字列クラス文字列として、コンパイルされますがエラーが発生します)。

些細な質問が多くて申し訳ありませんが、基本的には、オブジェクトをファイルに効率的に格納する方法に要約されますか?

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

c++ - C++ での ifstream の位置

私は自分の課題のために単純な UTF-8 デコーダーを書こうとしています。私はC ++にかなり慣れていないので、ここで我慢してください...

エンコーディングが有効かどうかを判断し、どちらの場合も UTF-8 文字の値を 16 進数で出力する必要があります。最初のバイトを読み取り、この最初のバイトを使用してこの UTF8 文字のバイト数を決定したとします。問題は、最初のバイトを読み取った後、ifstream の位置を 1 バイト戻して UTF-8 文字全体を読み取るのに問題があることです。seekg() と putback() を試しましたが、常に BUS エラーが発生するか、テスト データではない奇妙な出力が表示されます。助けてください、ありがとう。

最初のバイトに peek() を使用できますが、エンコーディングが有効かどうかを判断するには、次のバイトを読み取る必要があります。ストリーム位置を戻す問題はまだ残っています。

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

c++ - 絶対パスを指定するとfstreamを開くことができません

これはかなり笑えることは知っていますが、単純なC++のストリームコードを機能させることができないようです。次のコードで何が間違っている可能性があるか教えてください。

絶対パスを指定すると、ofstreamを開くことができなくなります。相対パスは問題なく機能しているようです。ここで何が問題なのか、私にはよくわかりません。