一、問題描述
将多條記錄寫入檔案中,每條記錄占一行。每寫入一條記錄,要計算目前檔案中所有記錄的大小(精确到位元組)和記錄條數,并寫到檔案的第一行(即檔案頭)。為了便于區分,檔案記錄的大小和檔案中記錄條數各占10個位元組,左對齊,不足的位補以空格。
二、算法流程
三、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檔案,内容如下:
---------------------------------------
2016年4月28日修改程式: