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

[SOLUCIONADO] Pasar fichero a una función

Estas en el tema de Pasar fichero a una función en el foro de C/C++ en Foros del Web. Hola, Cómo paso un fichero a una función para luego, poder abrirlo y trabajar con el dentro de la funcion? Tengo esto: fstream FicheroPalabras; do ...
  #1 (permalink)  
Antiguo 03/11/2015, 14:38
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Pregunta Pasar fichero a una función

Hola,
Cómo paso un fichero a una función para luego, poder abrirlo y trabajar con el dentro de la funcion?

Tengo esto:
fstream FicheroPalabras;

do
{
cout << "\nN\243mero de letras de la palabra: ";
cin >> NumeroLetras;
} while (ValidarLetra(NumeroLetras));

Función:
int ValidarLetra(int NumeroLetras)

Sería ValidarLetra(int NumeroLetras, FicheroPalabras), o cómo es?

Leí algo sobre poner como argumento FILE*, pero lo intenté y aun así el programa me tira una alerta. Alguien podría ayudarme?.
  #2 (permalink)  
Antiguo 03/11/2015, 14:47
Avatar de xKuZz  
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Pasar fichero a una función

No, sería
Código C++:
Ver original
  1. int ValidarLetra(int NumeroLetras, fstream &archivo){
  2.    // Dentro FicheroPalabras se llama archivo, si quieres otro nombre modifica archivo por otra cosa
  3. }
  #3 (permalink)  
Antiguo 03/11/2015, 14:59
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Pasar fichero a una función

Cita:
Iniciado por xKuZz Ver Mensaje
No, sería
Código C++:
Ver original
  1. int ValidarLetra(int NumeroLetras, fstream &archivo){
  2.    // Dentro FicheroPalabras se llama archivo, si quieres otro nombre modifica archivo por otra cosa
  3. }
Hola, gracias hermano, ahora mismo tengo esto:
int ValidarLetra(int NumeroLetras, fstream &FicheroPalabras)

Y para pasarla?, cómo es?:
while (ValidarLetra(NumeroLetras));

Sería:
while (ValidarLetra(NumeroLetras, FicheroPalabras));
Solamente?.
  #4 (permalink)  
Antiguo 04/11/2015, 02:12
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Pasar fichero a una función

Cita:
Iniciado por RGT Ver Mensaje
Sería:
while (ValidarLetra(NumeroLetras, FicheroPalabras));
Solamente?.
efectivamente.

Dado que la función está esperando una referencia:

Código C++:
Ver original
  1. int ValidarLetra(int NumeroLetras, fstream &archivo)
  2.                                            ^

Entonces le tienes que pasar el objeto por valor. La función entonces recogerá una referencia a dicho objeto.

Una referencia tiene la misma utilidad que un puntero, es decir, puedes compartir un mismo objeto entre diferentes partes del código, pero manteniendo la estética de un objeto por valor, es decir, para acceder a sus miembros tienes que usar el operador '.' en vez de '->'... ah si, y sobre una referencia no puedes lanzar un delete directamente, a diferencia de los punteros.

Un saludo
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: fichero, funcion, int, numero, programa
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 12:34.