Manejo de archivos a través de clases de C++

El manejo de archivos se utiliza para almacenar datos permanentemente en la computadora. Mediante el manejo de archivos podemos almacenar nuestros datos en la memoria secundaria (disco duro).
Cómo lograr el manejo de archivos
Para lograr el manejo de archivos necesitamos seguir los siguientes pasos:-
 PASO 1-Nombrar un archivo
 PASO 2-Abrir un archivo
 PASO 3-Escribir datos en el archivo
 PASO 4-Leer datos del archivo
 PASO 5- Cerrar un archivo.

Secuencias en C++ :-

Damos entrada al programa de ejecución y el programa de ejecución devuelve la salida. La secuencia de bytes dada como entrada al programa en ejecución y la secuencia de bytes que viene como salida del programa en ejecución se denominan flujo. En otras palabras, los flujos no son más que el flujo de datos en una secuencia.

La operación de entrada y salida entre el programa en ejecución y los dispositivos como el teclado y el monitor se conoce como «operación de E/S de consola». La operación de entrada y salida entre el programa en ejecución y los archivos se conoce como «operación de E/S de disco».

Clases para operaciones de transmisión de archivos: –

El sistema de E/S de C++ contiene un conjunto de clases que definen los métodos de manejo de archivos. Estos incluyen las clases ifstream, ofstream y fstream. Estas clases se derivan de fstream y de la clase iostream correspondiente. Estas clases, diseñadas para administrar los archivos del disco, están declaradas en fstream y, por lo tanto, debemos incluir este archivo en cualquier programa que use archivos.
1. ios: –

  • ios significa flujo de entrada y salida.
  • Esta clase es la clase base para otras clases en esta jerarquía de clases.
  • Esta clase contiene las funciones necesarias que utilizan todas las demás clases derivadas para las operaciones de entrada y salida.

2. istream:-

  • istream significa flujo de entrada.
  • Esta clase se deriva de la clase ‘ios’.
  • Esta clase maneja el flujo de entrada.
  • El operador de extracción (>>) está sobrecargado en esta clase para manejar flujos de entrada de archivos a la ejecución del programa.
  • Esta clase declara funciones de entrada como get(), getline() y read().
     

3. corriente:-

  • ostream significa flujo de salida.
  • Esta clase se deriva de la clase ‘ios’.
  • Esta clase maneja el flujo de salida.
  • El operador de inserción (<<) está sobrecargado en esta clase para manejar flujos de salida a archivos desde la ejecución del programa.
  • Esta clase declara funciones de salida como put() y write().

4. streambuf:-

  • Esta clase contiene un puntero que apunta al búfer que se utiliza para gestionar los flujos de entrada y salida.

5. fstream base:-

  • Esta clase proporciona operaciones comunes a los flujos de archivos. Sirve como base para las clases fstream, ifstream y ofstream. 
  • Esta clase contiene las funciones open() y close().

6. Si fluye: –

  • Esta clase proporciona operaciones de entrada.
  • Contiene la función open() con el modo de entrada predeterminado. 
  • Hereda las funciones get(), getline(), read(), seekg() y tellg() del istream.

7. de la corriente: –

  • Esta clase proporciona operaciones de salida.
  • Contiene la función open() con modo de salida predeterminado. 
  • Hereda las funciones put(), write(), seekp() y tellp() de ostream.

8. corriente:-

  • Esta clase proporciona soporte para operaciones de entrada y salida simultáneas.
  • Hereda todas las funciones de las clases istream y ostream a través de iostream.

9. filebuf:-

  • Su propósito es configurar los búferes de archivos para leer y escribir.
  • También podemos usar la función de miembro del búfer de archivo para determinar la longitud del archivo.
     

En C++, los archivos se tratan principalmente mediante el uso de tres clases fstream, ifstream, ofstream disponibles en fstream headerfile. 
ofstream: clase de flujo para escribir en archivos 
ifstream: clase de flujo para leer archivos 
fstream: clase de flujo para leer y escribir desde/hacia archivos. 

Ahora el primer paso para abrir el archivo en particular para la operación de lectura o escritura. Podemos abrir el archivo 
1. pasando el nombre del archivo en el constructor en el momento de la creación del objeto 
2. usando el método abierto 

Por ejemplo  

Abra el archivo usando el constructor 
ifstream (const char* filename, ios_base::openmode mode = ios_base::in); 
ifstream fin(nombre de archivo, modo abierto) por defecto openmode = ios::in 
ifstream fin(“nombre de archivo”);

Abrir archivo usando el método abierto 
Llamar al constructor predeterminado 
ifstream fin;
fin.open(nombre de archivo, modo abierto) 
fin.open(“nombre de archivo”); 
 

Modos:  

Miembro constante Representa Acceso
en * aporte Archivo abierto para lectura: el búfer de flujo interno admite operaciones de entrada.
afuera producción Archivo abierto para escritura: el búfer de flujo interno admite operaciones de salida.
binario binario Las operaciones se realizan en modo binario en lugar de texto.
comió al final La posición de salida comienza al final del archivo.
aplicación adjuntar Todas las operaciones de salida ocurren al final del archivo, agregando a su contenido existente.
tronco truncar Cualquier contenido que existía en el archivo antes de abrirlo se descarta.

Modos de apertura predeterminados:  

si corriente ios::en
fuera de la corriente ios::fuera
flujo de aire ios::en | ios::fuera

Declaración del problema : leer y escribir un archivo en C++. 
Ejemplos: 

Input : 
Welcome in GeeksforGeeks. Best way to learn things.
-1
Output : 
Welcome in GeeksforGeeks. Best way to learn things.

A continuación se muestra la implementación utilizando las clases ifstream y ofstream .  

C++

/* File Handling with C++ using ifstream & ofstream class object*/
/* To write the Content in File*/
/* Then to read the content of file*/
#include <iostream>
 
/* fstream header file for ifstream, ofstream,
  fstream classes */
#include <fstream>
 
using namespace std;
 
// Driver Code
int main()
{
    // Creation of ofstream class object
    ofstream fout;
 
    string line;
 
    // by default ios::out mode, automatically deletes
    // the content of file. To append the content, open in ios:app
    // fout.open("sample.txt", ios::app)
    fout.open("sample.txt");
 
    // Execute a loop If file successfully opened
    while (fout) {
 
        // Read a Line from standard input
        getline(cin, line);
 
        // Press -1 to exit
        if (line == "-1")
            break;
 
        // Write line in file
        fout << line << endl;
    }
 
    // Close the File
    fout.close();
 
    // Creation of ifstream class object to read the file
    ifstream fin;
 
    // by default open mode = ios::in mode
    fin.open("sample.txt");
 
    // Execute a loop until EOF (End of File)
    while (fin) {
 
        // Read a Line from File
        getline(fin, line);
 
        // Print line in Console
        cout << line << endl;
    }
 
    // Close the file
    fin.close();
 
    return 0;
}

A continuación se muestra la implementación mediante el uso de la clase fstream

C++

/* File Handling with C++ using fstream class object */
/* To write the Content in File */
/* Then to read the content of file*/
#include <iostream>
 
/* fstream header file for ifstream, ofstream,
   fstream classes */
#include <fstream>
 
using namespace std;
 
// Driver Code
int main()
{
    // Creation of fstream class object
    fstream fio;
 
    string line;
 
    // by default openmode = ios::in|ios::out mode
    // Automatically overwrites the content of file, To append
    // the content, open in ios:app
    // fio.open("sample.txt", ios::in|ios::out|ios::app)
    // ios::trunc mode delete all content before open
    fio.open("sample.txt", ios::trunc | ios::out | ios::in);
 
    // Execute a loop If file successfully Opened
    while (fio) {
 
        // Read a Line from standard input
        getline(cin, line);
 
        // Press -1 to exit
        if (line == "-1")
            break;
 
        // Write line in file
        fio << line << endl;
    }
 
    // Execute a loop until EOF (End of File)
    // point read pointer at beginning of file
    fio.seekg(0, ios::beg);
 
    while (fio) {
 
        // Read a Line from File
        getline(fio, line);
 
        // Print line in Console
        cout << line << endl;
    }
 
    // Close the file
    fio.close();
 
    return 0;
}

C++

Q: write a single file handling program in c++ to reading and writing data on a file.
 
#include<iostream>
#include<fstream>
   
using namespace std;
main()
{
      int rno,fee;
      char name[50];
   
      cout<<"Enter the Roll Number:";
      cin>>rno;
       
      cout<<"\nEnter the Name:";
      cin>>name;
       
      cout<<"\nEnter the Fee:";
      cin>>fee;
   
      ofstream fout("d:/student.doc");
   
      fout<<rno<<"\t"<<name<<"\t"<<fee;   //write data to the file student
   
      fout.close();
   
      ifstream fin("d:/student.doc");
   
      fin>>rno>>name>>fee;   //read data from the file student
   
      fin.close();
   
      cout<<endl<<rno<<"\t"<<name<<"\t"<<fee;
   
    return 0;   
}

C++

// Q: WA C++ file handling program to read data from the file called student.doc
 
#include<iostream>
#include<fstream>
 
using namespace std;
 
main()
{
      int rno,fee;
      char name[50];
   
      ifstream fin("d:/student.doc");
   
      fin>>rno>>name>>fee;   //read data from the file student
   
      fin.close();
   
      cout<<endl<<rno<<"\t"<<name<<"\t"<<fee;
  
      return 0;   
}

Publicación traducida automáticamente

Artículo escrito por prakhargvp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *