首页 > 编程知识 正文

c语言把两个文件合并,2个c语言程序合并在一起

时间:2023-12-28 21:11:14 阅读:329465 作者:WHIV

本文目录一览:

C语言问题:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并,输出到一个新文件C.

#includestdio.h

#includestdlib.h

int main(){

FILE *fp;

char text[50],ch;

int i,j;

if((fp=fopen("A","r"))==NULL){

printf("cannot open this file A n");

exit(0);

}

for(i=0;(ch=fgetc(fp))!=EOF;i++){

text[i]=ch;

putchar(ch);

}

fclose(fp);

f((fp=fopen("B","r"))==NULL){

printf("cannot open this file B n");

exit(0);

}

for(j=i;(ch=fgetc(fp))!=EOF;j++){

text[j]=ch;

putchar(ch);

}

fclose(fp);

fp=fopen("c","w+");

for(i=0;ij;i++){

fputc(text[i],fp);

putchar(text[i]);

}

fclose(fp);

}

C语言文件合并

设A.txt和B.txt都在当前目录下,读打开A.txt和B.txt,写打开C.txt。按字符循环读取A.txt文件一行并逐字符写入C.txt文件,但当读到'n'时不写入n'而启动另一内循环按字符读取B.txt文件的一行并逐字符写入C.txt文件,当写入'n'后跳出内循环停止读取B.txt文件转而再去读A.txt文件的下一行……如此反复,直到遇到A.txt文件的EOF时结束。代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void){

    FILE *fpa,*fpb,*fpc;

    char ch;

    fpa=fopen("A.txt","r");

    fpb=fopen("B.txt","r");

    fpc=fopen("C.txt","w");

    if(!fpa || !fpb || !fpc){

        printf("Open the file(s) failure...n");

        exit(0);

    }

    while((ch=fgetc(fpa))!=EOF){

        if(ch=='n')

            while(fputc(ch=fgetc(fpb),fpc),ch!='n'  ch!=EOF);

        else fputc(ch,fpc);

    }

    fclose(fpc);

    fclose(fpb);

    fclose(fpa);

    return 0;

}

c语言合并两个文件

完整代码如下,有任何疑问可以追问。

#include stdio.h

#include stdlib.h

int merge(char *in1,char *in2,char *out)

{

    FILE *f_in,*f_out;

    int n;

    char buf[4096];

    //打开输出文件

    f_out=fopen(out,"wb");

    if(!f_out) return 0;

    //打开并读第一个文件写到输出文件

    f_in=fopen(in1,"rb");

    if(!f_in) return 0;

    while(n=fread(buf,1,sizeof(buf),f_in))

    {

         fwrite(buf,1,n,f_out);

    }

    fclose(f_in);

    //打开并读第二个文件写到输出文件

    f_in=fopen(in2,"rb");

    if(!f_in) return 0;

    while(n=fread(buf,1,sizeof(buf),f_in))

    {

        fwrite(buf,1,n,f_out);

    }

    fclose(f_in);

    fclose(f_out);

    return 1;

}

int main()

{

    if (!merge (“1.txt”, “2.txt”, “3.txt”))

        printf(“Failed”);

    else

        printf(“successfully”);

    return 0;

}

怎么把两个不同程序合到一起?(c语言)

你问的问题好大,要合并两份独立的c语言代码,

第一,要把两份代码里的main入口合并为一个,

如何合并要看你期望合并后的main函数实现什么样的功能,

例如,A程序是实现计算一个数组里的所有数相加后的和的值的功能;

B程序是实现输出任意数字到一个txt文件的功能。那么合并A和B程序后,

一般就是将B程序里的main函数里的实现内容追加到A程序里的main函数的实现内容之后,

就算是合并后的main函数的内容了。

希望你具体问题具体分析。

第二,合并过程中要确认两份代码有没有标识符命名上的重复的问题。

例如两份代码里的公开函数名有没有相同的,如果相同的话肯定要改成不同的。

第三,在确认了前两点后,接着确认编译链接不出错。

第四,链接成功后,确认运行动作是否符合期望。

当然,实际项目中合并两份代码,往往不是上面这样做了就可以了。还涉及到两个程序中的功能的合并之类的比较复杂的工作。实践出真知,希望你多做项目来收获心得。

C语言文件怎样合并?

#include x0dx0aconst int MAX_SIZE_PER_LINE = 1024;x0dx0ax0dx0aint main(int argc, char *argv[])x0dx0a{x0dx0a FILE * file_a,*file_b,*file_c;x0dx0a char buffer[MAX_SIZE_PER_LINE*2];x0dx0a file_a = fopen("a.txt","r");x0dx0a file_b = fopen("b.txt","r");x0dx0a file_c = fopen("c.txt","w");x0dx0a while(NULL != fgets(buffer ,MAX_SIZE_PER_LINE,file_a))x0dx0a {x0dx0a //不是最后一行肯定会有换行符,消除这个换行符 x0dx0a if('n' == buffer[strlen(buffer)-1]) x0dx0a fgets(buffer+strlen(buffer)-1 ,MAX_SIZE_PER_LINE,file_b);x0dx0a //对于最后一行可能没有换行符的情况特殊处理 x0dx0a elsex0dx0a fgets(buffer+strlen(buffer) ,MAX_SIZE_PER_LINE,file_b); x0dx0a fputs(buffer,file_c); x0dx0a }x0dx0a fclose(file_a);x0dx0a fclose(file_b);x0dx0a fclose(file_c); x0dx0a return 0;x0dx0a}x0dx0ax0dx0a/*x0dx0aA.txt : x0dx0a-------x0dx0aaa*x0dx0abb*x0dx0acc*x0dx0add*x0dx0aee*x0dx0aff*x0dx0agg*x0dx0ax0dx0aB.txt : x0dx0a-------x0dx0a11x0dx0a22x0dx0a33x0dx0a44x0dx0a55x0dx0a66x0dx0a77x0dx0ax0dx0aC.txt :x0dx0a-------x0dx0aaa*11x0dx0abb*22x0dx0acc*33x0dx0add*44x0dx0aee*55x0dx0aff*66x0dx0agg*77 x0dx0ax0dx0a说明: A.txt 和 B.txt 要放在可执行程序同一个目录下。C.txt 会自动在这个目录下生成。 x0dx0a*/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。