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

Duda en C++

Estas en el tema de Duda en C++ en el foro de C/C++ en Foros del Web. Buenas, soy nuevo en el foro. Tengo una duda que me tiene loco desde hace 3 días porque no me deja avanzar, Os agradecería mucho ...
  #1 (permalink)  
Antiguo 06/01/2013, 12:27
Avatar de chdegraupv  
Fecha de Ingreso: enero-2013
Mensajes: 4
Antigüedad: 11 años, 3 meses
Puntos: 0
Duda en C++

Buenas, soy nuevo en el foro.

Tengo una duda que me tiene loco desde hace 3 días porque no me deja avanzar, Os agradecería mucho si me ayudaseis a resolverla.

Mi pregunta es la siguiente:
¿ Cómo hago para obtener el valor al que apunta un puntero que esta en un registro y uso en una función, en una distinta?

El problema que tengo, es que tengo que hacer un programa que lea la info de las montañas de un fichero de texto.

En el main tengo esto:

[...]
else
{
while (LeerMontana (f_mon, montana) )
MostrarMontana (montana);
f_mon.close ();
}
[...]


y las funciones que he hecho son estas:

bool LeerMontana(ifstream &f_mon,Montana montana)
{
f_mon>>montana.Indice;
montana.ipunt=&montana.Indice;
f_mon>>montana.NombreMontana;
montana.ipunt2=&montana.NombreMontana;
f_mon>>montana.Altura;
montana.ipunt3=&montana.Altura;
f_mon>>montana.PaisOpaises;
montana.ipunt4=&montana.PaisOpaises;


return (!f_mon.eof());
}



void MostrarMontana(Montana &montana)
{
cout<<*montana.ipunt<<" ";
cout<<*montana.ipunt2<<" ";
cout<<*montana.ipunt3<<" ";
cout<<*montana.ipunt4<<endl;
}


Este es el programa completo:


#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>

using namespace std;
const string NOM_FICH = "montanas.txt";



struct Montana
{
int Indice;
string NombreMontana;
int Altura;
string PaisOpaises;
int *ipunt;
string *ipunt2;
int *ipunt3;
string *ipunt4;

};



bool LeerMontana(ifstream &f_mon,Montana montana);
void MostrarMontana(Montana &montana);


int main (void)
{
Montana montana;
ifstream f_mon;
f_mon.open (NOM_FICH.c_str () );
int feof(FILE *f_mon);
if (!f_mon)
cout << "Error abriendo fichero.\n";
else
{
while (LeerMontana (f_mon, montana) )
MostrarMontana (montana);
f_mon.close ();
}
system("PAUSE");
return 0;
}



bool LeerMontana(ifstream &f_mon,Montana montana)
{

f_mon>>montana.Indice;
montana.ipunt=&montana.Indice;
f_mon>>montana.NombreMontana;
montana.ipunt2=&montana.NombreMontana;
f_mon>>montana.Altura;
montana.ipunt3=&montana.Altura;
f_mon>>montana.PaisOpaises;
montana.ipunt4=&montana.PaisOpaises;


return (!f_mon.eof());
}



void MostrarMontana(Montana &montana)
{
cout<<*montana.ipunt<<" ";
cout<<*montana.ipunt2<<" ";
cout<<*montana.ipunt3<<" ";
cout<<*montana.ipunt4<<endl;
}

Gracias de antemano.

Etiquetas: fichero, funcion, int, programa, string
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 11:35.