C語言檔案切割 合併

2021-09-30 01:52:31 字數 1774 閱讀 2506

2. 合併:將每段臨時檔案依次讀取,然後寫入到要合併成的新檔案

注意細節

1. 檔案開啟後記得要關閉

2. 對檔案開啟的狀態進行判斷,處理異常

3. fgets函式會獲取行尾的\n,必要時進行相關處理,fputs輸入字串時不會自動新增\n

4. 對最後一塊的長度進行特殊處理,因為它不一定等於每一塊的長度

5. 對操作的分割合併的檔案使用二進位制的模式進行開啟

6. 注意feof函式的使用,在檔案指標指向eof時,下一次讀取feof才會返回1

源**#include

#include

#include

#include

/*int main()

*//*

int main() stud[10];

char file_path = "d:\\stud.dat";

file * output = fopen(file_path,"w");

if(output == null)

for(int i=0;i<10;i++)

scanf("%s %d %d %s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);

fwrite(&stud[i],sizeof(struct student),1,output);

}flose(output);

getchar();

return 0;}*/

//獲取檔案大小

int getfilesize(char old_file_path)

/*int main()

//第二步:向指定的分割檔案寫入內容

//分析問題:每乙個檔案大小是多少?

//假設:原始檔大小51  分割成6個檔案   每乙個檔案的大小?

//兩種情況:第一種情況能夠平分(54%6=0)

//第二種情況不能夠平分(50%6!=0)

//例如:原始檔大小51  分割成6個檔案  前5個10  最後1個1

//例如:原始檔大小51  分割成7個檔案  前6in?51/(7-1)=8  最後1個51%(7-1)=3

//例如:原始檔大小51  分割成8個檔案  前7個51/(8-1)=7  最後1個51%(8-1)=2

//例如:原始檔大小51  分割成11個檔案  前10個51/(11-1)=5  最後1個51%(11-1)=1

//以此類推: 原始檔大小num  分割成n個  前n-1個大小=num/(n-1)  最後1個大小=num%(n-1)

long file_size_sum = getfilesize(source_file_path);

//開啟原始檔

file *source_p = fopen(source_file_path,"rb");

if(file_size_sum%file_number == 0)

getchar();

return 0;}*/

//合併檔案

int main()

//合併檔案

//開啟原始檔

file *merge_p = fopen(merge_file_path, "wb");

for (int i = 0; i < file_number; i++)

//關閉當前分割檔案流

fclose(file_cut);

}//關閉原始檔流

fclose(merge_p);

getchar();

return 0;

}

檔案切割以及合併筆記

以下個人理解,如有錯誤,多謝指點 檔案切割使用的類 cfile 使用到的建構函式 cfile cfile lpszfilename,nopenflags 使用到的成員函式 getposition seek dwoldseekpoint,cfile begin open const cstring l...

檔案切割與合併(split cat)

前言 分割檔案 檔案分割可以使用split命令,該即支援文字檔案分割,又支援二進位制檔案分割 而合併檔案可以使用cat命令。1.1 文字檔案分割 分割文字檔案時,可以按檔案大小分割,也可以按文字行數分割。按檔案大小分割 按檔案大小分割檔案時,需要以 c引數指定分割後的檔案大小 1 split c 1...

檔案切割和合併(記錄)

選項 b 值為每一輸出檔案的大小,單位為 byte。c 每一輸出檔中,單行的最大 byte 數。d 使用數字作為字尾。l 值為每一輸出檔的列數大小。使用split命令將lib1.zip檔案分割成大小為10mb的小檔案 split b 10m lib1.zip檔案被分割成多個帶有字母的字尾檔案,如果想...