-1

を使用してファイルの先頭にデータを書き込むことができるかどうか知りたいのですがfrwite。もっと正確に言うと、を使用してファイルを開き、書き込みを使用してファイルfopenにデータを書き込みます。ファイルを閉じる直前に、ファイルの内容の概要を少し書きたいと思います。この要約を置くのに最適な場所は、ファイルの先頭にあると思います。したがって、後でファイルを開くと、最初に要約を読み取り、次にデータを読み取ることができます。

実際、ファイルを開いたときに最初に要約を読むことができれば、要約を配置する場所は重要ではありません。

4

2 に答える 2

0

(ファイル全体を書き換えずに)ファイルの前にデータを挿入することはできません。

ファイル内の任意の時点でいくつかのバイトを上書きすることが可能です。これでニーズを実装するには、後で上書きするために、元のファイルに(おそらく最初に)いくつかのバイトを予約する必要があります。

FILE *f = fopen ("thefile", "r+");  // opens for read and write, positioned at beginning
if (!f)  error_message();
size_t n = fwrite ("newdata", 1, 7, f);  // overwrite first 7 bytes
if (n != 7)  error_message();
fclose (f);
于 2013-02-26T09:15:22.747 に答える
0

fwrite()、などを使用してputc()fprintf()空でないファイルの先頭に情報を挿入できるかどうかを尋ねている場合、答えはノーです。それはできません。

データを上書きするか、データを追加することができます。

挿入したい場合は、OS API を確認して、そのための特別な機能があるかどうかを確認する必要があります。ない場合は、別のファイルを作成し、要約をそこに書き込んでから、元の内容を書き込む必要があります。ファイル。もう 1 つのオプションは、データを手動で移動して、ファイルの先頭に十分なスペースを確保し、そこに要約を書き込むことができるようにすることです。

本当に必要な場合は、テキスト ファイルを逆方向​​に読み取ることができます。

于 2013-02-26T09:10:36.973 に答える