c语言如何连续生成多个文件名连续固定大小的txt文件

c语言如何连续生成多个文件名连续固定大小的txt文件,谢谢。
2025-02-23 07:16:04
推荐回答(3个)
回答1:

#include
#include
#include

FILE *in,*out;
char filename[50],ch,cfilename[50];

void space()
{
char ext[6][6]=
{
"a.txt","b.txt","c.txt","d.txt","e.txt","f.txt"
};
unsigned long int n=1,k,byte=0;
unsigned int j=0,i=0;
printf("Please input filename:\n");
scanf("%s",filename);
strcpy(cfilename,filename);
if((in=fopen(filename,"r"))==NULL)
{
printf("Cannot open file\n");
exit(0);
}
printf("please input file size after space(kb);\n");
scanf("%d",&n);
n=n*1024;
while(filename[j]!='.')
j++;
filename[j]='\0';
if((out=fopen(strcat(filename,ext[i]),"w"))==NULL)
{
printf("Cannot open file\n");
exit(0);
}
fseek(in,0,2);
k=ftell(in); //k存放当前位置,也就是整个文件的大小
fseek(in,0,0);
while(k>0)
{
ch=fgetc(in);
fputc(ch,out);
byte++;
k--;
if(byte==n) //当为要求的大小时执行括号内的语句
{
fclose(out);
byte=0;
strcpy(filename,cfilename);
while(filename[j]!='.')
j++;
filename[j]='\0';
i++;
if((out=fopen(strcat(filename,ext[i]),"w"))==NULL)
{
//生成分割后的文件所在路径
printf("Cannot open file\n");
exit(0);
}
}

}
fclose(in);
printf("File succeed space!\n");

}
void main()
{

printf("now file space!\n");
space();
}

这个代码参考一下,不知道是不是你要求的。

回答2:

你好!!
什么意思,是这样的吗

0001.txt

0002.txt

0003.txt

0004.txt

0005.txt
固定大小是什么意思?

回答3:

char *fp = NULL;
char name[64]="";
int i =0 ;
for(i=0;i<10;i++){
sprintf(name,"file%d.txt",i);
if(fp = fopen(name,"w+"))
fclose(fp);
}