C/Visual C - Plantillas de ficheros en C++

 
Vista:

Plantillas de ficheros en C++

Publicado por Jose (1 intervención) el 30/04/2003 17:50:21
Hola a toda la comunidad de programadores!!!!!

Necesitaria conseguir el código o información sobre plantillas (templates) de ficheros en C++.

Un cordial saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Uso de plantillas (templates) en C++ para manejo de archivos

Publicado por Alejandro (1153 intervenciones) el 19/05/2025 23:40:24
Para trabajar con plantillas (templates) en C++ que te permitan manejar archivos de manera genérica, puedes seguir el siguiente ejemplo básico. Este código muestra cómo crear una plantilla de función para leer datos de un archivo y almacenarlos en un vector.

Ejemplo de plantilla para manejo de archivos



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
template <typename T>
void leerArchivo(const std::string& nombreArchivo, std::vector<T>& datos) {
    std::ifstream archivo(nombreArchivo);
    if (!archivo) {
        std::cerr << "No se pudo abrir el archivo: " << nombreArchivo << std::endl;
        return;
    }
 
    T dato;
    while (archivo >> dato) {
        datos.push_back(dato);
    }
 
    archivo.close();
}
 
int main() {
    std::vector<int> datosEnteros;
    leerArchivo<int>("datos.txt", datosEnteros);
 
    std::cout << "Datos leídos del archivo:" << std::endl;
    for (const auto& dato : datosEnteros) {
        std::cout << dato << std::endl;
    }
 
    return 0;
}

Explicación del código



1. Plantilla de función: La función `leerArchivo` es una plantilla que acepta un tipo genérico `T`. Esto permite que la función pueda leer datos de diferentes tipos (por ejemplo, `int`, `double`, `std::string`, etc.).

2. Lectura de archivo: Se utiliza un `std::ifstream` para abrir el archivo. Si el archivo no se puede abrir, se muestra un mensaje de error.

3. Almacenamiento de datos: Los datos leídos se almacenan en un `std::vector<T>`, que se pasa como referencia a la función.

4. Uso en `main`: En la función `main`, se crea un vector de enteros y se llama a `leerArchivo` para leer los datos de un archivo llamado "datos.txt".

Consideraciones



- Asegúrate de que el archivo "datos.txt" exista en el mismo directorio que tu ejecutable o proporciona la ruta completa.
- Puedes crear más funciones de plantilla para diferentes tipos de operaciones de archivo, como escribir datos en un archivo, utilizando un enfoque similar.

Este ejemplo te proporciona una base para trabajar con plantillas en C++ y manejar archivos de manera flexible. ¡Espero que te sea útil, José! Un cordial saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar