C++ Cerrando un archivo


Ejemplo

Cerrar un archivo explícitamente rara vez es necesario en C ++, ya que una secuencia de archivos cerrará automáticamente su archivo asociado en su destructor. Sin embargo, debe intentar limitar la vida útil de un objeto de flujo de archivos, de modo que no mantenga abierto el manejador de archivos más de lo necesario. Por ejemplo, esto se puede hacer poniendo todas las operaciones de archivo en un ámbito propio ( {} ):

std::string const prepared_data = prepare_data();
{
    // Open a file for writing.
    std::ofstream output("foo.txt");

    // Write data.
    output << prepared_data;
}  // The ofstream will go out of scope here.
   // Its destructor will take care of closing the file properly.

Llamar a close() explícitamente solo es necesario si desea reutilizar el mismo objeto fstream más tarde, pero no desea mantener el archivo abierto entre:

// Open the file "foo.txt" for the first time.
std::ofstream output("foo.txt");

// Get some data to write from somewhere.
std::string const prepared_data = prepare_data();

// Write data to the file "foo.txt".
output << prepared_data;

// Close the file "foo.txt".
output.close();

// Preparing data might take a long time. Therefore, we don't open the output file stream
// before we actually can write some data to it.
std::string const more_prepared_data = prepare_complex_data();

// Open the file "foo.txt" for the second time once we are ready for writing.
output.open("foo.txt");

// Write the data to the file "foo.txt".
output << more_prepared_data;

// Close the file "foo.txt" once again.
output.close();