Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: perico02 en 22 Octubre 2015, 06:49 am



Título: Funcion que retorne structuras
Publicado por: perico02 en 22 Octubre 2015, 06:49 am
Buenas gente, estoy en un problemon. Tengo un switch que va a tener mas opciones que esa, pero quiero almenos solucionar el ALTA para pensar el resto

Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <"lib.h>

typedef struct {
int codProducto;
int codProveedor;
char descripcion[50];
float importe;
int cantidad;

}producto;

typedef struct{
int codProveedor;
char descripcion[50];
}proveedor;

int main(int argc, char *argv[]) {

producto prod[1000],aux;
int i,j,control=0,op,codAux,flag=0,max,min;

do{

op=menu();
switch(op){

case 1:
system("cls");
printf("Ingrese el codigo del producto:");
scanf("%d",&prod[control].codProducto);
printf("Ingrese codigo de proveedor:");
scanf("%d",&prod[control].codProveedor);
printf("Ingrese una descripcion del producto:");
scanf("%s",prod[control].descripcion);
printf("Ingrese el importe del producto:");
scanf("%f",&prod[control].importe);
printf("Ingrese la cantidad del producto que desea:");
scanf("%d",&prod[control].cantidad);
control++;
break;
}while(seguir()==1);
}


La idea es que mediante un menu de opciones que solo va a retornar un numero del 1 al 5 (Segun la opcion que eliga el usuario) entrar a cada uno de los diferentes case. Aca puse el del Alta.
Mi problema es que tengo que meter todo el case en una funcion, y desarrollarla ahi adentro.
Se que una funcion no puede retornar una estructura, pero la verdad que no tengo idea de como hacer esto asi si me puedan dar una mano me vendria genial


Título: Re: Funcion que retorne structuras
Publicado por: BlackM4ster en 22 Octubre 2015, 09:05 am
Citar
Se que una funcion no puede retornar una estructura
Estás seguro de eso...?

Código
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4.  
  5. int id;
  6. char* nombre;
  7.  
  8. } Persona;
  9.  
  10. Persona crearPersona() {
  11.  
  12. Persona nueva;
  13. nueva.id = 69;
  14. nueva.nombre = "Pepito";
  15. return nueva;
  16.  
  17. }
  18.  
  19. int main(int argc, char **argv) {
  20.  
  21. Persona persona = crearPersona();
  22.  
  23. printf("%d\n", persona.id);
  24. printf("%s\n", persona.nombre);
  25.  
  26. system("pause");
  27.  
  28. }


Título: Re: Funcion que retorne structuras
Publicado por: perico02 en 23 Octubre 2015, 01:41 am
Gracias, pero ahora tengo otro problema, yo compilo lo que me mandaste y funciona, ahora, yo tengo en un archivo el contendio de las estructuras, en otro los prototipos y en otro el desarrollo de las funciones. Asi que cuando compilo no me toma el tipo de estructura. Como podria hacer?


Título: Re: Funcion que retorne structuras
Publicado por: soyloqbuskas en 23 Octubre 2015, 06:36 am
ˇBuenas perico02!

El problema de los 3 archivos que no te compila probablemente sea porque haces algun #include que deberias hacer, por ejemplo: si en el fichero de las funciones tienes funciones que usan estructuras, en el fichero de funciones debes hacer un #include <ficheroEstructuras.h>

Un saludo.