📜  反转文件的内容并将其存储在另一个文件中

📅  最后修改于: 2021-05-30 13:51:50             🧑  作者: Mango

本文介绍了如何将第一个文本文件的数据的反向存储到第二个文本文件。在这篇文章中,假定第一个文本文件中没有文本。因此,通过将数据传递给反向函数,我们将在第一个文本文件中写入一些文本,然后在反向函数,我们会将其数据的反向复制到另一个文本文件中。

先决条件:
在文本文件中,数据以ASCII格式存储,并且可以在文本编辑器中读取数据,并且文件中的每个字母都在存储器中具有与数组相似的特定索引

例子:

// Sample input 1 
Input to the reverse function:
reverse

Output:
esrever

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

Output:
skeeG roF skeeG

方法:
步骤1:使用需要包含在第一个文本文件中的文本调用反向函数,即传递文本文件的样本输入。
反向函数的工作
步骤2:以写入模式打开文件,并将“ str”写入此处的第一个文本文件中:文件Geeks.txt中
步骤3:将第一个文本文件结尾的位置存储在变量“ pos”中,然后关闭文件。
步骤4:在阅读模式下打开第一个文本文件,并将阅读指针放在位置pos。
步骤5:以编写模式打开新的文本文件“ Geeks2.txt ”。
步骤6:通过从所述端字符阅读第一文本文件的字符,并存储每个字符至第二文本文件。
步骤7:在文本文件中,将读取的指针向后移动一个字母。
步骤8:关闭文本文件。
步骤9:读取第二个文本文件(如果不需要,您可以跳过它)。

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

例子:

#include 
#include 
#include 
#include 
  
// 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
    ofs.open("Geeks.txt", ios::out);
  
    for (int i = 0; str[i] != '\0'; i++) {
        // writing into the file
        ofs.put(str[i]);
    }
  
    // storing the position of  end of the file
    int pos = ofs.tellp();
    ofs.close();
  
    // object for reading the contents of the
    // first text file
    ifstream ifs;
    ifs.open("Geeks.txt", ios::in);
  
    // object for writing in to the text file 2
    ofstream ofs1;
    ofs1.open("Geeks2.txt", ios::out);
  
    // putting the read pointer to the last alphabet
    // of the file
    ifs.seekg(--pos);
  
    while (pos >= 0) {
        // reading from the file 1
        ifs.get(ch);
  
        // writing to the file 2
        ofs1.put(ch);
  
        /* shifting read pointer position one 
        alphabet backwards in the text file */
        pos--;
  
        ifs.seekg(pos);
    }
  
    ifs.close();
    ofs1.close();
  
    ifstream ifs1;
    ifs1.open("Geeks2.txt", ios::in);
  
    // file.eof() checks the end of the text file
    while (!ifs1.eof()) {
        ifs1.get(ch);
        cout << ch;
    }
    ifs1.close();
}
  
// Driver code
int main()
{
    clrscr();
  
    // 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";
    reverse("reverse");
  
    getch();
    return 0;
}

输出:

想要从精选的最佳视频中学习和练习问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”