Copie de contenu de fichier en C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à copier le contenu d'un fichier dans un autre en utilisant la manipulation de fichiers en langage C++.

Inclure les fichiers d'en-tête et les espaces de noms

Dans la première étape, nous allons inclure les fichiers d'en-tête et les espaces de noms nécessaires pour poursuivre le code.

#include <iostream>
#include <fstream>

using namespace std;

Copier un fichier dans un autre

Dans cette étape, nous allons effectuer les actions suivantes :

  1. Créer des objets des classes ifstream et ofstream.
  2. Vérifier s'ils sont connectés à leurs fichiers respectifs. Si c'est le cas, continuez, sinon vérifiez deux fois les noms de fichiers. Lire le contenu du fichier source en utilisant la méthode getline() et l'écrire dans la destination en utilisant l'opérateur << (c'est-à-dire copier chaque ligne de l'objet ifstream dans l'objet ofstream).
  3. Fermer les fichiers après la copie en utilisant la méthode 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();
}

Fonction principale

Dans cette étape, nous allons créer une fonction principale pour effectuer l'opération de copie de fichier en appelant notre fonction copyFile().

int main(){

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

    copyFile(sourceFile, destinationFile);

    return 0;
}

Compiler et exécuter

Dans cette étape, puisque le fichier de code est enregistré dans ~/project/main.cpp, nous pouvons changer le répertoire actuel vers ~/project et exécuter les commandes suivantes dans le terminal :

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

Cela compilera et exécutera le programme et produira la sortie :

Copy Finished

Code final

#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;
}

Résumé

Dans ce laboratoire, une application a été créée permettant aux utilisateurs de copier le contenu d'un fichier dans un autre fichier en utilisant des méthodes de gestion de fichiers en langage C++.