天天看點

寫檔案頭的算法流程及C代碼實作

一、問題描述

       将多條記錄寫入檔案中,每條記錄占一行。每寫入一條記錄,要計算目前檔案中所有記錄的大小(精确到位元組)和記錄條數,并寫到檔案的第一行(即檔案頭)。為了便于區分,檔案記錄的大小和檔案中記錄條數各占10個位元組,左對齊,不足的位補以空格。

二、算法流程

寫檔案頭的算法流程及C代碼實作

三、C代碼實作

四、程式說明

        (1) 本程式在Linux環境下用makefile檔案進行編譯,makefile檔案的内容如下:

WriteFileHeader : WriteFileHeader.c

       gcc -c -g WriteFileHeader.c

       gcc -g -o release/WriteFileHeader WriteFileHeader.o

       rm *.o

        (2) 本程式中使用了多個檔案處理函數,如:fopen、fputs、fflush、fclose、fseek、fread、fwrite等。各位讀者可以據此體會不同檔案處理函數的用法。

        (3) 本程式示範了三次檔案記錄的寫入過程,大家可以根據自身所需用不同的記錄來對程式進行測試。

五、程式運作結果

        用makefile檔案對程式進行編譯之後,轉到release目錄下,執行“WriteFileHeader”指令,結果如下:

WriteToFile: now write header to file, Count of content=1

WriteToFile: now update file header, Count of content=2

WriteToFile: now update file header, Count of content=3

       檢視TestFile.txt檔案,内容如下:

寫檔案頭的算法流程及C代碼實作

---------------------------------------

2016年4月28日修改程式:

繼續閱讀