Introducción
En este laboratorio, aprenderemos cómo copiar el contenido de un archivo a otro utilizando la manipulación de archivos en el lenguaje C++.
Incluir Archivos de Encabezado y Espacios de Nombres
En el primer paso, incluiremos los archivos de encabezado necesarios y los espacios de nombres para continuar con el código.
#include <iostream>
#include <fstream>
using namespace std;
Copiar un archivo a otro
En este paso, realizaremos las siguientes acciones:
- Crear objetos de las clases
ifstreamyofstream. - Verificar si están conectados a sus respectivos archivos. Si es así, continuar; de lo contrario, comprobar los nombres de archivo dos veces. Leer el contenido del archivo fuente utilizando el método
getline()y escribirlo en el destino utilizando el operador<<(es decir, copiar cada línea del objetoifstreamal objetoofstream). - Cerrar los archivos después de la copia utilizando el método
close().
void copyFile(string sourceFile, string destinationFile){
string line;
// creando objetos ifstream y ofstream
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// Leyendo del archivo fuente y escribiendo en el archivo destino
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"Copia terminada"<<endl;
}
else{
printf("No se puede leer el archivo");
}
// cerrando archivo
sourceFileStream.close();
destinationFileStream.close();
}
Función principal
En este paso, crearemos una función principal para realizar la operación de copia de archivos llamando a nuestra función copyFile().
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
Compilar y ejecutar
En este paso, dado que el archivo de código se guarda en ~/proyecto/main.cpp, podemos cambiar el directorio actual a ~/proyecto y ejecutar los siguientes comandos en la terminal:
g++ main.cpp -o main
./main
Esto compilará y ejecutará el programa y generará la salida:
Copia terminada
Código final
#include <iostream>
#include <fstream>
using namespace std;
void copyFile(string sourceFile, string destinationFile){
string line;
// creando objetos ifstream y ofstream
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// Leyendo del archivo fuente y escribiendo en el archivo destino
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"Copia terminada"<<endl;
}
else{
printf("No se puede leer el archivo");
}
// cerrando archivo
sourceFileStream.close();
destinationFileStream.close();
}
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
Resumen
En este laboratorio, se creó una aplicación que permite a los usuarios copiar el contenido de un archivo a otro archivo utilizando métodos de manipulación de archivos en el lenguaje C++.



