codescracker
c++

C++ Program to Merge Two Files



« Previous Program Next Program »

In this article, you will learn and get code to merge the content of any two files into a third file using C++ program. The name of all the three files must be entered by user at run-time.

Things to Do before Program

Because, this article is created to provide you the C++ source code to merge two files, you must have or have to create all the three files inside the current directory. The current directory means, the directory where your C++ source code to merge two files is saved.

Therefore, create the first source file named codes.txt with following content:

This is codes.txt file

And then create second source file named cracker.txt with following content:

This is cracker.txt file

Now create the third file (target file) without any content (empty content). The name of third file is codescracker.txt.

You can name the file with your choice whatever you want. But remember to provide the name of these files while executing the program given below to merge the content of two files into a third file.

Because I'm going to save my C++ source code given below (to merge two files) in cpp programs folder present inside its parent directory named Documents in C-Drive of my computer system. Here is the snapshot of the folder cpp programs:

merge two files c++

As you can see, there are three newly created file inside the folder cpp programs. And here is the snapshot of all the three files with its content:

merge content of two files into third c++

As you can clearly see, that the content inside codes.txt and cracker.txt is available, but codescracker.txt file is completely empty. Now let's move on to the program, to merge the content of two files into the third (target) file.

Merge Contents of Two Files into a Third File

To merge two files in C++ programming, you have to ask from user to enter the name of all the three files with extension, as shown in the program given below:

To do the task of merging, first receive the name of two files, and open it in reading mode. If both files gets opened successfully, then further receive the input as name of third or target file.

The content of first and second file gets copied into the third file one by one as shown in the following program.

The question is, write a program in C++ that merges the content of two files into the third file. Here is its answer:

#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
int main()
{
    char fileOne[30], fileTwo[30], fileTarget[30], ch;
    fstream fpsOne, fpsTwo, fpTarget;
    cout<<"Enter the Name of First Source File: ";
    gets(fileOne);
    cout<<"Enter the Name of Second Source File: ";
    gets(fileTwo);
    fpsOne.open(fileOne, fstream::in);
    fpsTwo.open(fileTwo, fstream::in);
    if((!fpsOne) || (!fpsTwo))
    {
        cout<<"\nError Occurred (First Source File)!";
        return 0;
    }
    else
    {
        cout<<"\nEnter the Name of Target File: ";
        gets(fileTarget);
        fpTarget.open(fileTarget, fstream::out);
        if(!fpTarget)
            cout<<"\nError Occurred (Target File)!";
        else
        {
            while(fpsOne>>noskipws>>ch)
                fpTarget<<ch;
            fpTarget<<"\n";
            while(fpsTwo>>noskipws>>ch)
                fpTarget<<ch;
            cout<<"\nContent of Two File Merged Successfully into Third!";
        }
    }
    fpsOne.close();
    fpsTwo.close();
    fpTarget.close();
    cout<<endl;
    return 0;
}

This program was build and run under Code::Blocks IDE. Here is its sample run:

C++ program to merge two files

Now supply the name of first two source files say codes.txt and cracker.txt. Then enter the name of target file say codescracker.txt to merge the content of first two files into this file. All the three files are created at the early of this article. Now here is the sample output after providing these inputs:

merge two files into third file c++

As you can see, the message printed after supply the name of all three files is, Content of Two File Merged Successfully into Third!. Therefore the content of first two source files gets merged into the third file. You can open and see the third (target) file. Here is the snapshot of opened target file, codescracker.txt after executing the above program:

c++ merge two files

As you can see, the content of two source files gets merged into the target file. There is a newline inserted between both source file's content through the program

But if you don't need to insert a newline between the content of both source file, then just remove the following code from the above program:

fpTarget<<"\n";

to copy the content in as it is manner, without adding some extra things like a newline.

The fstream library allows to work with files. It is defined in fstream header file

The function, open() opens the file. It takes two argument. The first argument is the name of file, which is a required argument, and the second argument is its opening mode, which is an optional argument. The following code:

fpsOne.open(fileOne, fstream::in);

opens the file, fileOne in reading mode. And the file opening mode, fstream::out opens a file in writing mode.

The following statement:

fpsOne>>noskipws>>ch

reads data from file through its stream, fpsOne, in character-by-character manner, without skipping white spaces. And the following statement:

fpTarget<<ch;

writes data to file through its stream, fpTarget.

Same Program in Other Languages

C++ Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker