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

problemas con estructuras

Estas en el tema de problemas con estructuras en el foro de C/C++ en Foros del Web. hola foro mi problemas es que me esta devolviendo basura hace poco empeze a ver estructura y estoy viendo funciones externas pero cuando le pido ...
  #1 (permalink)  
Antiguo 24/02/2008, 15:59
 
Fecha de Ingreso: enero-2008
Mensajes: 14
Antigüedad: 16 años, 4 meses
Puntos: 0
problemas con estructuras

hola foro mi problemas es que me esta devolviendo basura hace poco empeze a ver estructura y estoy viendo funciones externas pero cuando le pido q me muestre lo q guardo me devuelve basura q estoy haciendo mal ?y otra pregunta como hago para mostrar solo los libros atraves de la estructura biblioteca desde ya gracias y espero q se entienda,ahi va el codigo
# include <iostream>
#include <string>
#include <sstream>
#include <conio.h>
#define j 3

using namespace std;
void cargar( struct biblioteca );
void mostrar( biblioteca);
int i;

struct libro{
char titulo[10];
char autor[6];
char categoria[10];
};
struct biblioteca{
libro l [j];
char direccion[8];

};
int main (){

struct biblioteca bli;
cargar( bli);
getch();
mostrar(bli);

}
void cargar (biblioteca bli)
{
cout<<"ingresar la direccion : ";
cin>>bli.direccion;
for(i=0;i<j;i++){
cout<<"ingresar titulo : ";
cin>>bli.l[i].titulo;
cout<<"ingresar autor :";
cin>>bli.l[i].autor;
cout<<"ingresar categoria: ";
cin>>bli.l[i].categoria;
cout<<endl;
}
}
void mostrar (biblioteca bli){
cout<<"la direccion es : "<<bli.direccion<<endl;
for(i=0;i<j;i++){
cout<<endl;
cout<<"los titulos son: "<<bli.l[i].titulo<<endl;

cout<<"los autores son : "<<bli.l[i].autor<<endl;
cout<<"las categorias son : "<<bli.l[i].categoria<<endl;
getch();
}
}
  #2 (permalink)  
Antiguo 24/02/2008, 17:16
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: problemas con estructuras

Las instancias de las estructuras en C++ son como las instancias de cualquier otro tipo, en tanto que si las pasas como argumento a una función sin utilizar ni punteros o referencias, dentro de la función estás trabajando con una variable que es una copia de la original.

Es por eso que te queda sin inicializar la biblioteca de main() y ves basura al mostrarla. En el ejemplo lo único que cambio de tu código es la declaración del prototipo y la declaración de argumentos de la función cargar, para que reciban una referencia a la biblioteca (no se hace copia y accedes diractamente a la instancia global de main).

La segunda pregunta no entiendo bien a que te referis. Saludos espero que te sirva.



Código:
# include <iostream>
#include <string>
#include <sstream>
#include <conio.h>
#define j 3
using namespace std;
void cargar( struct biblioteca& );
void mostrar( biblioteca );
int i;

struct libro{
  char titulo[10];
  char autor[6];
  char categoria[10];
};
struct biblioteca{
  libro l [j];
  char direccion[8];
};
int main (){

  biblioteca bli;
  cargar(bli);
  getch();
  mostrar(bli);

}
void cargar (biblioteca& bli)
{
  cout<<"Ingresar la direccion : ";
  cin >> bli.direccion;
  for(i=0;i<j;i++){
    cout<<"Ingresar titulo : ";
    cin>>bli.l[i].titulo;
    cout<<"ingresar autor :";
    cin>>bli.l[i].autor;
    cout<<"ingresar categoria: ";
    cin>>bli.l[i].categoria;
    cout<<endl;
  }
}
void mostrar (biblioteca bli){
  cout<<"la direccion es : "<<bli.direccion<<endl;
  for(i=0;i<j;i++){
    cout<<endl;
    cout<<"los titulos son: "<<bli.l[i].titulo<<endl;

    cout<<"los autores son : "<<bli.l[i].autor<<endl;
    cout<<"las categorias son : "<<bli.l[i].categoria<<endl;
    getch();
  }
}
__________________
programación php
  #3 (permalink)  
Antiguo 24/02/2008, 19:47
 
Fecha de Ingreso: enero-2008
Mensajes: 14
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problemas con estructuras

drbit gracias por toda la explicacion ahora funciona bien
si sabes de alguna pagina para ver la parte de punteros y por referencia te agradesco.
  #4 (permalink)  
Antiguo 25/02/2008, 07:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: problemas con estructuras

C Con Clase y su lista de correos me parecen muy buenas http://www.conclase.net/

Saludos.
__________________
programación php
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 07:55.