Dateiinhalt kopieren in C++

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man die Inhalte einer Datei in eine andere Datei kopiert, indem man die Dateiverwaltung in der C++-Programmiersprache nutzt.

Headerdateien und Namensräume einbinden

Im ersten Schritt werden wir die erforderlichen Headerdateien und Namensräume einbinden, um mit dem Code fortzufahren.

#include <iostream>
#include <fstream>

using namespace std;

Eine Datei in eine andere kopieren

In diesem Schritt werden wir die folgenden Aktionen ausführen:

  1. Objekte der Klassen ifstream und ofstream erstellen.
  2. Überprüfen, ob sie mit ihren jeweiligen Dateien verbunden sind. Wenn ja, gehen Sie fort, andernfalls überprüfen Sie die Dateinamen zweimal. Lesen Sie die Inhalte der Quelldatei mit der Methode getline() und schreiben Sie die gleichen in die Zieldatei mit dem Operator << (d.h. kopieren Sie jede Zeile vom ifstream-Objekt in das ofstream-Objekt).
  3. Schließen Sie die Dateien nach der Kopie mit der Methode 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();
}

Hauptfunktion

In diesem Schritt werden wir eine Hauptfunktion erstellen, um die Dateikopieroperation durch Aufruf unserer copyFile()-Funktion auszuführen.

int main(){

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

    copyFile(sourceFile, destinationFile);

    return 0;
}

Kompilieren und Ausführen

In diesem Schritt, da die Code-Datei in ~/project/main.cpp gespeichert ist, können wir das aktuelle Verzeichnis in ~/project ändern und die folgenden Befehle im Terminal ausführen:

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

Dies wird das Programm kompilieren und ausführen und das folgende Ausgabe erzeugen:

Copy Finished

Endgültiger Code

#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 Fertig"<<endl;
    }
    else{
        printf("Kann Datei nicht lesen");
    }

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

int main(){

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

    copyFile(sourceFile, destinationFile);

    return 0;
}

Zusammenfassung

In diesem Lab wurde eine Anwendung erstellt, die es Benutzern ermöglicht, die Inhalte einer Datei in eine andere Datei zu kopieren, indem Dateimanipulationsmethoden in der C++-Programmiersprache verwendet werden.