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