用C语言 将一个文件分成固定大小的几个文件。

用C语言 将一个文件分成固定大小的几个文件。,第1张

输入文件名叫 abc.txt 你可以改名。

输出文件名叫 aaX.txt X=0,1,2,3....

单个文件大小 one_size, 你可以 更改大小。

#include<stdio.h>

main(){

FILE *fp, *fout

char nameout[80]

int i,j,k,n

long size, one_size=1024

char *buff

// one_size=one_size * 0.1 //你可以 更改大小

fp = fopen ("abc.txt","rb")

if (fp==NULL) { printf("Error opening file")return 0}

fseek (fp, 0, SEEK_END) // non-portable

size=ftell (fp)

printf ("Size of abc.txt: %d bytes.\n",size) //得到大小

rewind(fp)

n=size/one_size

buff = (char*)malloc(sizeof(char)*one_size)

for (i=0i<ni++)

{

sprintf(nameout,"aa%d.txt",i)

fout = fopen(nameout,"wb")

k = fread (buff,1,one_size,fp)

//if (k != one_size) {printf("read err\n")return (0)}

fwrite(buff,1,one_size,fout)

fclose(fout)

printf("output in %s\n",nameout)

} // for i

j = size % one_size

if (j!=0) {

sprintf(nameout,"aa%d.txt",n)

fout = fopen(nameout,"wb")

k = fread (buff,1,j,fp)

// if (k != j) {printf("read err\n")return (0)}

fwrite(buff,1,k,fout)

fclose(fout)

printf("output in %s\n",nameout)

}

fclose (fp)

return 0

}

char szBuff[512]  = {0}//前提是要知道每行最长长度

 

fgets(szBuff,sizeof(szBuff),m_pFile)) //m_pFile是打开文件的句柄。

fgets读取一行内容,再加个循环直到文件结尾


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7929963.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存