Копирование содержимого файлов на C++

C++Beginner
Практиковаться сейчас

Введение

В этом практическом занятии мы научимся копировать содержимое одного файла в другой с использованием файловой обработки на языке C++.

Подключить заголовочные файлы и пространства имен

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

#include <iostream>
#include <fstream>

using namespace std;

Скопировать один файл в другой

В этом шаге мы выполним следующие действия:

  1. Создадим объекты классов ifstream и ofstream.
  2. Проверим, подключены ли они к своим соответствующим файлам. Если да, то продолжаем, иначе проверьте имена файлов дважды. Считайте содержимое исходного файла с использованием метода getline() и запишите его в целевой файл с использованием оператора << (то есть скопируйте каждую строку из объекта ifstream в объект ofstream).
  3. Закройте файлы после копирования с использованием метода close().
void copyFile(string sourceFile, string destinationFile){

    string line;

    // creating ifstream and ofstream objects
    ifstream sourceFileStream(sourceFile);
    ofstream destinationFileStream(destinationFile);

    // Reading from source file and writing to destination file
    if(sourceFileStream.is_open() && destinationFileStream.is_open()){
        while(getline(sourceFileStream, line)){
            destinationFileStream << line << "\n";
        }
        cout<<"Copy Finished"<<endl;
    }
    else{
        printf("Cannot read File");
    }

    //closing file
    sourceFileStream.close();
    destinationFileStream.close();
}

Главная функция

В этом шаге мы создадим главную функцию для выполнения операции копирования файла, вызвав нашу функцию copyFile().

int main(){

    string sourceFile = "original.txt";
    string destinationFile = "copy.txt";

    copyFile(sourceFile, destinationFile);

    return 0;
}

Компилировать и запускать

В этом шаге, так как файл с кодом сохранен в ~/project/main.cpp, мы можем изменить текущую директорию на ~/project и выполнить следующие команды в терминале:

g++ main.cpp -o main
./main

Это будет компилировать и выполнять программу и выводить результат:

Copy Finished

Конечный код

#include <iostream>
#include <fstream>

using namespace std;

void copyFile(string sourceFile, string destinationFile){

    string line;

    // creating ifstream and ofstream objects
    ifstream sourceFileStream(sourceFile);
    ofstream destinationFileStream(destinationFile);

    // Reading from source file and writing to destination file
    if(sourceFileStream.is_open() && destinationFileStream.is_open()){
        while(getline(sourceFileStream, line)){
            destinationFileStream << line << "\n";
        }
        cout<<"Copy Finished"<<endl;
    }
    else{
        printf("Cannot read File");
    }

    //closing file
    sourceFileStream.close();
    destinationFileStream.close();
}

int main(){

    string sourceFile = "original.txt";
    string destinationFile = "copy.txt";

    copyFile(sourceFile, destinationFile);

    return 0;
}

Резюме

В этом лабораторном задании был создан приложение, которое позволяет пользователям копировать содержимое одного файла в другой с использованием методов обработки файлов на языке C++.