当前位置:网站首页>The two files are merged into a third file.

The two files are merged into a third file.

2022-06-26 19:27:00 laocooon

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define MAX 1024
#define F1 "f1.txt"
#define F2 "f2.txt"
#define F3 "f3.txt"
void strcat(char* s1, char *s2,char *s3)// Alternate arrangement of generated strings s3
{
    int i = 0,j=0,k=0;
    while (s1[i] && s2[j])
    {
        s3[k++] = s1[i++];
        s3[k++] = s2[j++];
    }
    while (s1[i])
    {
        s3[k++] = s1[i++];        
    }
    while (s2[j])
    {        
        s3[k++] = s2[j++];
    }
    s3[k] = '\0';
}

void printfile(char *filename)
{
    char s[1024];
    FILE* fp;
    fp = fopen(filename, "r");
    if (fp == NULL)
        return;
    printf("%s Is as follows :\n",filename);
    while (fscanf(fp, "%s", s) != EOF)
    {
        printf("%s\n",s);
    }
    fclose(fp);
}
void merge(char *file1, char* file2, char* file3)
{
    char s1[1024], s2[1024], s3[2048];
    int tmp1,tmp2;
    FILE* f1, * f2, * f3;
    f1 = fopen(file1, "r");
    f2 = fopen(file2, "r");
    f3 = fopen(file3, "w");

    if (f1 == NULL || f2 == NULL || f3 == NULL)// If three files   One of the failed to open , immediate withdrawal 
        return ;


    while (1)
    {
        tmp1 = fscanf(f1, "%s", s1);
        tmp2 = fscanf(f2, "%s", s2);
        if (tmp1 == EOF && tmp2 == EOF)
            break;

        else if (tmp1 != EOF && tmp2 != EOF)
        {        
            strcat(s1, s2, s3);
            fprintf(f3, "%s\n", s3);        }
            
        else if (tmp2 != EOF)
        {
            printf(f3, "%s\n", s2);
        }
        else if (tmp1 != EOF)
        {
            fprintf(f3, "%s\n", s1);
        }
                 
    } 
    fclose(f1);
    fclose(f2);
    fclose(f3);
}

int main()
{
    
    printfile(F1);
    printfile(F2);
    merge(F1,F2,F3);
    printfile(F3);
    return 0;
}

原网站

版权声明
本文为[laocooon]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206261911120718.html