elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:53  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema al abrir ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al abrir ficheros  (Leído 374 veces)
Tururu_ru

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema al abrir ficheros
« en: 24 Octubre 2011, 18:02 »

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 Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Problema al abrir ficheros
« Respuesta #1 en: 24 Octubre 2011, 18:10 »

Pues haz un "switch - case" y listo

Código
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 por Riki_89D » En línea
Tururu_ru

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema al abrir ficheros
« Respuesta #2 en: 24 Octubre 2011, 18:24 »

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 Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Problema al abrir ficheros
« Respuesta #3 en: 24 Octubre 2011, 18:33 »

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();


Código
#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 por Riki_89D » En línea
do-while


Desconectado Desconectado

Mensajes: 604


Cuando me afeito, recuerdo porque me dejo barba.


Ver Perfil
Re: Problema al abrir ficheros
« Respuesta #4 en: 24 Octubre 2011, 22:05 »

¡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

¡¡¡Feliz año nuevo!!!
rir3760


Desconectado Desconectado

Mensajes: 382


Ver Perfil
Re: Problema al abrir ficheros
« Respuesta #5 en: 25 Octubre 2011, 03:50 »

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:
Código
#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

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lentitud al abrir ficheros
Windows
franciscon 1 300 Último mensaje 18 Septiembre 2004, 09:03
por Cadacher
PROGRAMA PARA ABRIR FICHEROS EXE
Hacking Básico
redfalcon 13 34,365 Último mensaje 2 Octubre 2005, 17:26
por redfalcon
abrir varios ficheros y unirlos en una variable
PHP
drakolive 4 722 Último mensaje 21 Marzo 2008, 01:53
por drakolive
ABrir ficheros
Programación C/C++
mapers 3 374 Último mensaje 5 Abril 2011, 23:24
por Akai
Manejo de ficheros: Me da el error al abrir el fichero, por que?
Programación C/C++
Firos 2 528 Último mensaje 11 Abril 2011, 16:15
por Firos
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines