帮忙写一个c语言程序,作用是写一个分割文件的程序,原文件太大,无法装的下,需要分割

帮忙写一个c语言程序,作用是写一个分割文件的程序,原文件太大,无法装的下,需要分割如题

#include <stdio.h>
#include <string.h>
#define TARGET_SIZE (100*1024*1024) //分割为100M一个文件
int main()
{
    char name[100];
    FILE *in, *out;
    char target[100];
    int cnt=1,c, n=0;
    printf("input source file name and path:");
    gets(name);
    in = fopen(name, "rb");
    if(in == NULL)
    {
        printf("can not read file\n");
        return -1;
    }
    while(!feof(in))
    {
        sprintf(target, "%s.part%d",name, cnt);
        out = fopen(target, "wb");
        if(out == NULL)
        {
            printf("open %d file to write failed\n",cnt);
            return -1;
        }
        n = 0;
        while((c=fgetc(in)) != EOF && n<TARGET_SIZE)
        {
            fputc(c, out);
            n++;
        }
        fclose(out);
        cnt ++;
    }
    fclose(in);
    printf("done! the file is cut to %d file(s)\n", cnt-1);
    return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言分割文件、合并文件
在实现功能时,可以采用C语言中的文件操作函数,如fopen、fread、fwrite等,来读取和写入文件数据。在具体编程过程中,还需要注意内存管理,避免因内存分配不当导致的程序崩溃或性能问题。通过以上步骤,可以实现文件的高效分割与合并功能。这些功能不仅有助于文件的管理与传输,还能在一定程度上提升程序的性能。

C语言写个输出文件大小的程序
include <stdio.h>#include <sys\/stat.h>int main(int ac, char * av[]) { struct stat sb; stat(av[1], &sb); printf("%lld\\n", (long long) sb.st_size); return 0;}

用C语言 将一个文件分成固定大小的几个文件。
输入文件名叫 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; \/\/你...

C语言写一个文件: 给定一个限制文件大小 超出空间内容则覆盖_百度知 ...
if ( filelen>FILELEN ){ fwrite(buffer,k-(filelen-FILELEN),1,fp);k=filelen-FILELEN; fseek(fp,0,SEEKSET);} fwrite(buffer,k,1,fp);...fclose(fp);}

求助,使用C语言编写一个程序,可以显示或输出文本中的最大数字。
include <stdio.h>int main() {int num,max;FILE *fin;char filename[60] = "indata.txt";if((fin = fopen(filename,"rt")) == NULL) {printf("无法打开数据文件。\\n");return 1;}fscanf(fin,"%d",&max);while(fscanf(fin,"%d",&num) == 1) {if(num > max) max = num;...

谁能给一个1000行的c语言程序
int c;\/\/功能选择需要的号码 system("color 2a"); struct student *head=NULL; if ((fp1=fopen("record.txt","r"))==NULL) { fp2=fopen("record.txt","w");\/\/如果不存在record.txt就创建一个 fclose(fp2); } head=load(); while(1) { face(); printf("选择你需要操作的功能号码:"); sca...

C语言,帮我看看,这道题的程序是死循环了,还是文件写入字节太大?怎么...
1. 在void fun(int a[],int b[],int n)中 for(i=0;i<n;i++) \/\/数组越界了,应该改成for(i=0;i<6;i++)b[i]=0;2. 检查一下in4.dat中的数据格式是否正确,要符合"%d,"别少了逗号多了空格什么的 且数据足够多(至少100个)或者你在程序中检查fscanf(rf,"%d,",&a[j])...

c语言中怎样把不同的程序分开
c语言中把不同的程序分开:先在代码中找所有函数的定义,以及所有全局变量的定义,前面加上extern。我实现了一个函数:int a(){return 0;},那么它的定义就是int a();\/\/extern省略或:我声明了一个全局变量:int b=0; ,那么在头文件中他就是extern int b。可以把文件分割成为若干部分存储,...

一个c语言小问题,编写程序?
按照题目要求编写的C语言程序如下(见图)

如何编写一个C语言程序,计算出最大数?
1、首先在Visual Studio 2019中新建一个C语言文件,如下图所示。2、接着导入如下图所示的库文件,所需要的数学计算函数都在里面。3、然后运用scanf函数来接收用户输入的三个数字,如下图所示。4、接着利用逐个比较的方式计算三个数中的最大值,如下图所示。5、运行编写的C语言文件,会弹出如下图...

相似回答