Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Abrir fichero con nombre de variable

Estas en el tema de Abrir fichero con nombre de variable en el foro de C/C++ en Foros del Web. Imaginaos que tengo una variable llamada "fich" a la cual le asigno un nombre que he metido por el teclado, por ejemplo, fichero1. Teniendo en ...
  #1 (permalink)  
Antiguo 11/01/2012, 10:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 14
Antigüedad: 13 años, 7 meses
Puntos: 0
Abrir fichero con nombre de variable

Imaginaos que tengo una variable llamada "fich" a la cual le asigno un nombre que he metido por el teclado, por ejemplo, fichero1. Teniendo en cuenta que ya existe un archivo llamado fichero1.txt, quisiera abrirlo. Más o menos algo así:

fich = "fichero.txt";
fstream f;
f.open(fich, ios::in);
f.close();

¿Cómo podría hacer para abrir el fichero que quiero? Cualquier ayuda me serviría.
Muchas gracias.
  #2 (permalink)  
Antiguo 11/01/2012, 11:02
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: Abrir fichero con nombre de variable

Hola, intente de esta forma.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdio>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.     char fich[]="fichero.txt";
  9.     char cad[100];
  10.     ifstream f;
  11.     f.open(fich,ios::out);
  12.     while(f.good())
  13.     {
  14.         f.read(cad,100);
  15.         cout<<cad<<endl;
  16.     }
  17.     f.close();    
  18.     return 0;
  19. }
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #3 (permalink)  
Antiguo 20/01/2012, 11:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 14
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Abrir fichero con nombre de variable

Gracias por la respuesta, pero no es eso exactamente lo que quiero hacer.
A ver si consigo explicarme mejor que antes ejje.
Lo que quiero conseguir es abrir un fichero con el nombre de una variable que puede tener diferentes valores, por ejemplo:
Tengo la variable "id", la cual puede tener un valor de 1, 2, 3, 4 o 5. Y quiero abrir un fichero con el valor de esa variable por nombre, es decir, más o menos,
f.open(id.txt, ios::in), por lo que si id es 1, se abrirá el fichero 1.txt, si es 2, el fichero 2.txt, y así sucesivamente. Pero la función f.open sólo me permite abrir un fichero dándole un string con el nombre, pero como con lo que quiero conseguir es imposible darle un nombre fijo (porque no se cual es el valor de id), pues no se como hacerlo.
A ver si alguien me puede ayudar.
Gracias!!
  #4 (permalink)  
Antiguo 20/01/2012, 15:37
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 4 meses
Puntos: 25
Respuesta: Abrir fichero con nombre de variable

siguiendo el ejemplo de CapacProg:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdio>
  4. #include <string>//añadimos la biblioteca "string.h"
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.  
  10.     string fich="fichero.txt";//cambie el tipo de variable a "string"
  11.     cin>> fich; //leemos el nombre del fichero sin la extension
  12.  
  13.    fich+= ".txt"; //le agregarmos la extension ".txt"
  14.  
  15.     char cad[100];
  16.     ifstream f;
  17.  
  18.     f.open(fich.c_str() ,ios::in); //la funcion "c_str()" convertira la cadena string en un const char*, solo por el momento
  19.  
  20.     while(f.good())
  21.  
  22.     {
  23.         f.read(cad,100);
  24.         cout<<cad<<endl;
  25.     }
  26.  
  27.     f.close();    
  28.     return 0;
  29. }
  #5 (permalink)  
Antiguo 23/01/2012, 02:48
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Abrir fichero con nombre de variable

Si el nombre del fichero va a depender solamente de la variable entera id, mira la salida de este programilla:

Código C:
Ver original
  1. int main(void)
  2. {
  3.   int id;
  4.   char nombre[20];
  5.   for (id=1; id<=5; id++)
  6.   {
  7.     sprintf(nombre, "%d.txt", id);
  8.     printf("%s\n", nombre);
  9.   }
  10. }

(claro está, añade los #include que correspondan). Si eso es lo que buscas, ya tienes el modo de generar los nombres de archivo a partir del valor de la variable, sólo tendrás que pasarlo a C++ (yo trabajo en C, y mi conocimiento de C++ es, por el momento, muy limitado).

Saludos,

Etiquetas: fichero, nombre, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:50.