Autor
|
Tema: Problema al abrir ficheros (Leído 3,101 veces)
|
Tururu_ru
Desconectado
Mensajes: 2
|
Hola, quiero abrir un archivo de texto en c++, pero el nombre de ese archivo puede ser desde 1.txt hasta 5.txt. Es decir, tengo 5 archivos de texto, 1.txt...5.txt, y quiero abrir el archivo que le corresponda a la variable "mod". Si mod vale 1, abriré el archivo 1.txt, si mod vale 2, el archivo 2.txt, y así sucesivamente. He intentado abrirlo así: f.open("'mod'.txt", ios::out);, también así: f.open("mod.txt", ios::out); Pero no lo consigo, alguien me podría ayudar? Gracias!
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Pues haz un "switch - case" y listo switch(mod) { case 1: // abre el archivo 1.... break; case 2: .....
y asin sucesivamente y lo de "f.open()" esta bien,con ios::out) abres el archivo para realizar operaciones de escritura,si tu intencion es leer los archivos usa ios::in saludos
|
|
« Última modificación: 24 Octubre 2011, 18:16 pm por Riki_89D »
|
En línea
|
|
|
|
Tururu_ru
Desconectado
Mensajes: 2
|
Sí, eso ya lo había pensado, pero tengo que abrir esos ficheros muchas veces en un mismo programa, por lo que no quiero llenar muchas lineas de código con tantos switch. Pienso que tiene que haber alguna otra manera usando las comillas o las tildes en el nombre del fichero. Alguien sabe como? Aun así gracias por contestar.
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
A ya entiendo....lo que quieres es concatenar la variable mod con el nombre del archivo para que quede "txt1.txt"....y ese 1 varia segun lo que pongas en mod.....bien xD si lo que quieres hacer es eso,usa la funcion strcat(); #include "iostream" char File[30] = "texto"; char Mod[2]; char Ext[5] = ".txt"; char *Final = NULL; char *U = NULL; int main(void) { std::cin >> Mod; //Leemos Mod fflush(stdin); Final = strcat(File,Mod); // Juntamos File+Mod = texto1 U = strcat(Final,Ext); // Y Juntamos "texto1" con la extension ".txt" = texto1.txt std::cout << U; getchar(); return 0; } // Eso imprime texto1.txt
en vez del "cout" deberias de poner "f.open(U,ios::out); Lo acabo de probar y funciona,ya solo tendrias que con "cin" o gets()" recojer el numero en mod apartir de alli yo lo que aria seria crear mi propia funcion para que el code nos ea tan grande saludos
|
|
« Última modificación: 24 Octubre 2011, 18:56 pm por Riki_89D »
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! Como veo que andas un poco perdido, te recomiendo que uses la clase stringstream que se encuentra definida en <sstream>. Sobre esta clase puedes realizar operaciones de "entrada" y "salida" como si lo hicieses sobre objetos del tipo iostream (utilizando por ejemplo los operadores << y >>). Aqui te dejo un enlace a la referencia de la clase: http://www.cplusplus.com/reference/iostream/stringstream/Investiga un poco sobre ella y si aun asi no consigues lo que quieres, vuelve por aqui. ¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Siguiendo la recomendacion de do-while
un ejemplo sencillo del uso de stringstream y string para crear el nombre en la forma "Nombre_N.txt" es: #include <iostream> using std::cin; using std::cout; using std::endl; #include <sstream> using std::stringstream; #include <string> using std::string; int main() { for (int i = 0; i != 5; ++i){ stringstream ss; ss << i; string nombre = "Nombre_" + ss.str() + ".txt"; cout << nombre.c_str() << endl; } return 0; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
abrir varios ficheros y unirlos en una variable
PHP
|
drakolive
|
4
|
2,445
|
21 Marzo 2008, 01:53 am
por drakolive
|
|
|
ABrir ficheros
Programación C/C++
|
mapers
|
3
|
2,605
|
5 Abril 2011, 23:24 pm
por Akai
|
|
|
Manejo de ficheros: Me da el error al abrir el fichero, por que?
Programación C/C++
|
Firos
|
2
|
3,117
|
11 Abril 2011, 16:15 pm
por Firos
|
|
|
Problema con descriptores de ficheros
Programación C/C++
|
iapellaniz
|
3
|
2,450
|
17 Octubre 2014, 23:35 pm
por Eternal Idol
|
|
|
Problema con ficheros
Programación C/C++
|
DeIMachine
|
2
|
1,703
|
12 Diciembre 2015, 23:06 pm
por DeIMachine
|
|