Skip to content
Related Articles

Related Articles

Improve Article

Reverse the content of a file and store it in another

  • Difficulty Level : Hard
  • Last Updated : 16 Jul, 2020

The article explains how to store the reverse of the first text file’s data to a second text file. In this post, it has been assumed that there is no text in the first text file. So we will write some text in a first text file by passing data to reverse function and then in reverse function we will copy the reverse of its data to another text file.

In text file the data is stored in the ASCII format and the data can be read in the text editor with each alphabet in the file given a specific index in the memory similar to that of an array


// Sample input 1 
Input to the reverse function:


// Sample input 2
Input to the reverse function:  
Geeks For Geeks

skeeG roF skeeG

Step 1: Calling reverse function with text that is needed to be contained in the first text file i.e. passing sample input of text file.
Working of Reverse function
Step 2: Opening file in writing mode and writing “str” into first text file here: in file Geeks.txt
Step 3: Storing the location of end of first text file in the variable “pos” and the closing the file.
Step 4: Opening first text file in reading mode and placing the reading pointer at position pos.
Step 5: Opening new text file “Geeks2.txt” in writing mode.
Step 6: Reading first text file character by character from the end and storing each character to the second text file.
Step 7: Shifting the read pointer one alphabet backwards in the text file.
Step 8: Closing the text files.
Step 9: Reading second text file (you can skip it if not necessary).

**name of first text file ="Geeks.txt"
**name of second text file="Geeks2.txt"


#include <conio.h>
#include <fstream.h>
#include <iostream.h>
#include <stdio.h>
// function to perform the task
// accepts the parameter str as the text to
// be stored in text file
void reverse(char str[])
    char ch;
    ofstream ofs;
    // created text file"Geeks.txt", ios::out);
    for (int i = 0; str[i] != '\0'; i++) {
        // writing into the file
    // storing the position of  end of the file
    int pos = ofs.tellp();
    // object for reading the contents of the
    // first text file
    ifstream ifs;"Geeks.txt", ios::in);
    // object for writing in to the text file 2
    ofstream ofs1;"Geeks2.txt", ios::out);
    // putting the read pointer to the last alphabet
    // of the file
    while (pos >= 0) {
        // reading from the file 1
        // writing to the file 2
        /* shifting read pointer position one 
        alphabet backwards in the text file */
    ifstream ifs1;"Geeks2.txt", ios::in);
    // file.eof() checks the end of the text file
    while (!ifs1.eof()) {
        cout << ch;
// Driver code
int main()
    // sample input 1
    cout << "example 1: (Geeks For Geeks) \n";
    // passing first text file's text
    // through reverse function
    reverse("Geeks For Geeks");
    // sample input 2
    cout << "\n example 2:(reverse)\n";
    return 0;


Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :