Thursday 16 November 2017

C Program that Merges Lines Alternatively from 2 Files & Print Result


Code:

#include  stdio.h
main()
{
    char file1[10], file2[10];

    puts("enter the name of file 1");      /*getting the names of file to be concatenated*/
    scanf("%s", file1);
    puts("enter the name of file 2");
    scanf("%s", file2);
    FILE *fptr1, *fptr2, *fptr3;
    fptr1=fopen(file1, "r");             /*opening the files in read only mode*/
    fptr2=fopen(file2, "r");
    fptr3=fopen("merge2.txt", "w+");   /*opening a new file in write,update mode*/
    char str1[200];
    char ch1, ch2;
    int n = 0, w = 0;
    while (((ch1=fgetc(fptr1)) != EOF) && ((ch2 = fgetc(fptr2)) != EOF))
    {
        if (ch1 != EOF)             /*getting lines in alternately from two files*/
        {
            ungetc(ch1, fptr1);
            fgets(str1, 199, fptr1);
            fputs(str1, fptr3);
            if (str1[0] != 'n')
                n++;      /*counting no. of lines*/
        }
        if (ch2 != EOF)
        {
            ungetc(ch2, fptr2);
            fgets(str1, 199, fptr2);
            fputs(str1, fptr3);
            if (str1[0] != 'n')
                n++;        /*counting no.of lines*/
        }
    }
    rewind(fptr3);
    while ((ch1 = fgetc(fptr3)) != EOF)       /*countig no.of words*/
    {
        ungetc(ch1, fptr3);
        fscanf(fptr3, "%s", str1);
        if (str1[0] != ' ' || str1[0] != 'n')
            w++;
    }
    fprintf(fptr3, "\n\n number of lines = %d n number of words is = %d\n", n, w - 1);
    /*appendig comments in the concatenated file*/
    fclose(fptr1);
    fclose(fptr2);
    fclose(fptr3);
}


Output:

enter the name of file 1
c.txt
enter the name of file 2
a.txt
$ vi merge2.txt

 Execute and you will get the output.
 number of lines = 4
 number of words is = 114



More C Programs:













100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...