2

私の問題は、fprintfが期待される出力の一部のみをファイルに出力していることです.printfを使用すると、出力が出力ウィンドウに正しく印刷され、ループが正しいことを示しますが、fprintfで使用すると、完全な出力が印刷されません。最初の部分だけが印刷されます。

何が問題になる可能性があるかについてアドバイスしてください???

前もって感謝します...

4

4 に答える 4

5

私はあなたがあなたのファイルをフラッシュ/クローズしていないに違いない。

于 2009-06-29T09:10:40.883 に答える
3

問題は、実際にデータをディスクに書き込むように C に指示していない可能性があります。これは通常、ファイルを閉じたときに自動的に発生しますが、それ以外の場合 (内部バッファーがいっぱいになったときなど) に自動的に発生する場合もあります。

ほんの数バイトを書き込んでから、ファイルをチェックして何が起こったのかを確認しているようです。その場合、実際にディスクに書き込む前に、プログラムがそれらのバイトを内部バッファーに保持している可能性があります。これは、一般的なケースでパフォーマンスを向上させるために行われます。通常、すべての print ステートメントごとにディスク アクセスは必要ありません。

他の回答が示唆するように、1 つの解決策は fflush を呼び出すことです。これにより、バッファリングされたすべてのデータがディスクに「フラッシュ」されます。バッファリングをオフにするなどの解決策は他にもありますが、プログラミングは初めてなので、最初のステップとして fflush を呼び出すのが最善の方法です。

詳細については、C を使用したファイル I/O に関するwiki ブックへのリンクを参照してください。 fflushのセクションに直接ジャンプできますが、導入の段落を読んでもう少し洞察を得ることができます。

于 2009-08-09T16:10:39.487 に答える
2

フラッシュクローズを忘れたように聞こえます

于 2009-06-29T09:11:49.010 に答える
0

fflush() を使用しようとしています

于 2009-08-09T15:51:59.573 に答える