elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como enviar un fichero como parametro en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como enviar un fichero como parametro en C++  (Leído 10,663 veces)
DarkSorcerer

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Como enviar un fichero como parametro en C++
« en: 1 Septiembre 2013, 05:58 am »

Hola gente, soy novato en C++, me gustaría que me pudieran ayudar a como mandar por parametro un fichero que abro desde el main.
Lo que quiero es abrir el fichero desde el main, primero comprobar si todo marcha bien, si el fichero no se abrio, el programa avisa que fallo, de lo contrario, manda como parametro a una funcion que se encargara de leer el fichero dentro de un ciclo infinito hasta que no haya mas que extraer del archivo. El fichero tiene este formato

palabra1,palabra2,palabra3,..................................,palabraN

y quiero imprimir cada palabra x cada linea, por eso use getline(fichero,palabra,',');

Pero me salio un error gigante y no pudo funcionar como queria

Les dejo el codigo, estoy usando NetBeans 7.3

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. void leerFichero(ifstream fichero){
  9.  
  10.    string palabra;
  11.  
  12.    while(!fichero.eof()){
  13.  
  14.        getline(fichero,palabra,',');
  15.        cout <<palabra;
  16.  
  17.    }
  18.  
  19. }
  20.  
  21. int main(int argc, char** argv) {
  22.  
  23.    ifstream fichero("personal.txt");
  24.  
  25.    if(fichero.is_open()){
  26.  
  27.        leerFichero(fichero);
  28.  
  29.    }else{
  30.  
  31.        cout <<"\nNo se pudo abrir el fichero";
  32.  
  33.    }
  34.  
  35.    return 0;
  36. }
  37.  
  38.  


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Como enviar un fichero como parametro en C++
« Respuesta #1 en: 1 Septiembre 2013, 11:29 am »

"fichero" es un objeto de tipo "ifstream". El problema que tienes es que getline no es una función válida como tal. Tu quieres hacer "fichero.getline".

Código
  1.    char palabra[50];
  2.  
  3.    while(!fichero.eof()){
  4.  
  5.        fichero.getline(palabra, 50, ',');
  6.        cout <<palabra;
  7.  
  8.    }

Como has podido comprobar, palabra no puede ser un string, la interfaz getline de ifstream no tiene ninguna sobrecarga que admita un string, tiene que ser un array de tipo char.


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Como enviar un fichero como parametro en C++
« Respuesta #2 en: 1 Septiembre 2013, 12:34 pm »

"fichero" es un objeto de tipo "ifstream". El problema que tienes es que getline no es una función válida como tal.
getline también puede usarse como una función, con sobrecarga para strings:
http://www.cplusplus.com/reference/string/string/getline/

El error está en que estás haciendo una copia del fichero para pasarlo a la función, tienes que pasarlo por referencia:

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. void leerFichero(ifstream &fichero){
  9.  
  10.   string palabra;
  11.  
  12.   while(!fichero.eof()){
  13.  
  14.       getline(fichero,palabra,',');
  15.       cout <<palabra;
  16.  
  17.   }
  18.  
  19. }
  20.  
  21. int main(int argc, char** argv) {
  22.  
  23.   ifstream fichero("personal.txt");
  24.  
  25.   if(fichero.is_open()){
  26.  
  27.       leerFichero(fichero);
  28.  
  29.   }else{
  30.  
  31.       cout <<"\nNo se pudo abrir el fichero";
  32.  
  33.   }
  34.  
  35.   return 0;
  36. }
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
COMO PASAR PARAMETRO DE CRYSTAL REPORTS A VB 6
Programación Visual Basic
danieline 0 4,407 Último mensaje 26 Octubre 2005, 18:07 pm
por danieline
Ayuda Metodo con Objeto como parametro....
Java
PAD_boy 2 3,357 Último mensaje 8 Octubre 2008, 00:56 am
por Ragnarok
como crear un array de parametro?
Programación Visual Basic
ricardovinzo 1 2,012 Último mensaje 20 Octubre 2008, 06:33 am
por cassiani
Como pasar un fichero de salida como parametro
Programación C/C++
ZedGe 3 6,042 Último mensaje 30 Enero 2012, 15:03 pm
por ZedGe
Como subir un fichero a otro servidor ¿Cómo sería mejor? « 1 2 »
PHP
dimitrix 10 9,197 Último mensaje 10 Junio 2012, 17:06 pm
por it3r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines