Переверните содержимое файла и сохраните его в другом

Опубликовано: 29 Декабря, 2021

В статье объясняется, как сохранить обратную сторону данных первого текстового файла во второй текстовый файл. В этом посте предполагалось, что в первом текстовом файле нет текста. Итак, мы напишем некоторый текст в первый текстовый файл, передав данные в обратную функцию, а затем в обратной функции мы скопируем обратные данные в другой текстовый файл.

Предпосылка:
В текстовом файле данные хранятся в формате ASCII , и данные могут быть прочитаны в текстовом редакторе, при этом каждому алфавиту в файле присваивается определенный индекс в памяти, аналогичный индексу массива.

Пример:

// Пример ввода 1 
Вход в обратную функцию:
задний ход

Выход:
Esrever

// Пример ввода 2
Вход в обратную функцию:  
Вундеркинды для гиков

Выход:
ЛЫЖКА РОФ ЛЫЖИ

Подход:
Шаг 1: Вызов обратной функции с текстом, который должен содержаться в первом текстовом файле, т.е. передача образца ввода текстового файла.
Работа обратной функции
Шаг 2: Открытие файла в режиме записи и запись «str» в первый текстовый файл здесь: в файле Geeks.txt
Шаг 3: Сохранение местоположения конца первого текстового файла в переменной «pos» и закрытие файла.
Шаг 4: Открытие первого текстового файла в режиме чтения и установка указателя чтения в позицию поз.
Шаг 5: Открытие нового текстового файла « Geeks2.txt » в режиме записи.
Шаг 6: Чтение первого текстового файла символ за символом от конца и сохранение каждого символа во втором текстовом файле.
Шаг 7. Сдвиг указателя чтения на один алфавит назад в текстовом файле.
Шаг 8: закрытие текстовых файлов.
Шаг 9: Чтение второго текстового файла (при необходимости его можно пропустить).

** имя первого текстового файла = "Geeks.txt"
** имя второго текстового файла = "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
ofs.open( "Geeks.txt" , ios::out);
for ( int i = 0; str[i] != '' ; 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) " ;
// passing first text file's text
// through reverse function
reverse( "Geeks For Geeks" );
// sample input 2
cout << " example 2:(reverse) " ;
reverse( "reverse" );
getch();
return 0;
}

Выход:

Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .



C++