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

Problema con imprimir los resultadosen un programa en c++ (apuntadores)

Estas en el tema de Problema con imprimir los resultadosen un programa en c++ (apuntadores) en el foro de C/C++ en Foros del Web. Hola. Mi problema es cuando quiero imprimir los resultados me salen dos errores despues del int main(). Para ser mas precisos donde mando a llamar ...
  #1 (permalink)  
Antiguo 01/09/2011, 00:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico D.F
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Problema con imprimir los resultadosen un programa en c++ (apuntadores)

Hola. Mi problema es cuando quiero imprimir los resultados me salen dos errores despues del int main(). Para ser mas precisos donde mando a llamar a capturainten e imprimir.Me aparece esto:

cannot convert `corriente**' to `corriente*' for argument `1' to `void capturainten(corriente*)'

cannot convert `corriente**' to `corriente*' for argument `1' to `void imprimir(corriente*)'

Ayuda por favor. ¿seran los apuntadores?

p.d Estoy utilizando dev c++


#include <iostream>
#include <string>
#include <cmath>

using namespace std;

struct corriente
{
string intensidad;
string voltaje;
string resistencia;
string inductancia;
string capacitancia;
string frecuencia;
float inten;

};
string capturacad(string msj);
float capturanum(string msj);
float calculainten(float inten);
void capturainten(corriente *apinten);
void imprimir(corriente *apinten);

int main()
{


corriente *apinten1;


capturainten(&apinten1);
imprimir(&apinten1);





return 0;

}


string capturacad(string msj)
{
string texto;
fflush(stdin);
cout<<msj;
getline(cin,texto);
return texto;
}




float capturanum(string msj)
{
float num;
cout<<msj;
cin>>num;
return num;
}





float calculainten(float inten)
{
float i,vol,resis,induc,capa,frecu;

i=vol/sqrt(pow(resis,2)+pow(2*3.1416*frecu*induc-(1/(2*3.1416*frecu*capa)),2));

return i;

}



void capturainten(corriente *apinten)

{

(*apinten).voltaje=capturacad("Introduzca el voltaje:");
(*apinten).resistencia=capturacad("Introduzca resistencia:");
(*apinten).inductancia=capturacad("Introduzca inductancia:");
(*apinten).capacitancia=capturacad("Introduzca capacitancia:");
(*apinten).frecuencia=capturacad("Introduzca la frecuancia:");

(*apinten).inten=calculainten(apinten->inten);

}


void imprimir(corriente *apinten)
{
cout<<"La intensidad es:"<<apinten->inten<<endl;

}
  #2 (permalink)  
Antiguo 01/09/2011, 01:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: Problema con imprimir los resultadosen un programa en c++ (apuntadores)

Código:
corriente apinten1;
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 01/09/2011, 01:16
 
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico D.F
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con imprimir los resultadosen un programa en c++ (apuntadores)

Gracias , por un asterisco me lleve dos horas. Pero ahora ¿porque cuando meto los datos me aparece que el resultado es cero? metiendo los datos que sea me aparece que es cero.¿Esta mal declarada mi funcion?
  #4 (permalink)  
Antiguo 01/09/2011, 01:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: Problema con imprimir los resultadosen un programa en c++ (apuntadores)

Si, esta mal implementada, estas usando variables sin inicializar (con valor indeterminado) en la linea 71 (vol, resis, frecu, induc y capa).

En lugar de pasarle inten que tampoco esta inicializado y no usas deberias pasarle apinten, ahi tenes los miembros de la estructura (voltaje, resistencia, etc.) con los valores introducidos por el usuario.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Etiquetas: apuntadores, c++, devc++, funciones, calculadora
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 22:30.