Funcion que retorne structuras

Iniciado por perico02, 22 Octubre 2015, 06:49 AM

0 Miembros y 1 Visitante están viendo este tema.

perico02

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


#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

BlackM4ster

CitarSe que una funcion no puede retornar una estructura
Estás seguro de eso...?

#include <stdio.h>

typedef struct {

int id;
char* nombre;

} Persona;

Persona crearPersona() {

Persona nueva;
nueva.id = 69;
nueva.nombre = "Pepito";
return nueva;

}

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

Persona persona = crearPersona();

printf("%d\n", persona.id);
printf("%s\n", persona.nombre);

system("pause");

}
- Pásate por mi web -
https://codeisc.com

perico02

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?

soyloqbuskas

¡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.
"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw