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

Problemas pasando estructuras a una función

Estas en el tema de Problemas pasando estructuras a una función en el foro de C/C++ en Foros del Web. Hola, necesito una ayudita con este programa. Por más vueltas que le doy no encuentro la solución. El programa lo que hace es leer una ...
  #1 (permalink)  
Antiguo 06/12/2008, 05:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemas pasando estructuras a una función

Hola, necesito una ayudita con este programa. Por más vueltas que le doy no encuentro la solución.

El programa lo que hace es leer una serie de ciudades con su nombre, el número de habitantes y su código de provincia en una función y almacenártelos en estructuras, y después te los muestra en la función principal

(en verdad eso no es lo único que me piden, pero es para comprobar que el programa me va bien )

Sin embargo, al compilar en el Dev-C++ me dan los siguientes errores:

- new types may not be defined in a return type.
- two or more data types in declaration of 'leer ciudades'.

Los dos errores salen en la línea 24 (al principio de la función "leer ciudades").

El código es este:

Código:
/*Bibliotecas utilizadas por el programa*/

#include <string>
#include <iostream>
using namespace std;

/*Definición de constantes*/

#define MAX_ciudades 20

/*Definición de estructuras*/

struct ciudad
{ 
       string nombre;
       long habitantes;
       short codigo;
}

/*Procedimiento leer ciudades*/

void leer_ciudades (ciudad datos[MAX_ciudades], short cuantos)
{
     short numero_ciudad, i;
     
     for(i=0;i<cuantos;i++)
     {
     
        numero_ciudad=i+1;
     
        cout << "Introduce el nombre de la ciudad numero " << i+1 << ": ";
        cin >> datos[i].nombre;
  
        cout << "\nIntroduce sus habitantes: ";
        cin >> datos[i].habitantes;
  
        while(datos[i].habitantes<0)
        {
                                    cout << "El numero de habitantes no puede ser negativo.\n",
                                    cout << "Introduce el dato de nuevo: ";
                                    cin >> datos[i].habitantes;
        }
     
        cout << "\nIntroduce su codigo de provincia (de 1 a 50): ";
        cin >> datos[i].codigo;
     
        while( datos[i].codigo<=0 && datos[i].codigo>50 )
        {
                                 cout << "El codigo de provincia es erroneo.\n";
                                 cout << "Introduce el codigo de provincia de nuevo: ";
                                 cin >> datos[i].codigo;
        }
    }
} 

/***********************************************
/* FUNCIÓN PRINCIPAL
************************************************/

int main()
{
    short cuantos, i, j;
    struct ciudad datos[MAX_ciudades];
    
    cout << "\n\t\tARCHIVO DE CIUDADES\n\n";
    
    cout << "En primer lugar, introduce cuantas ciudades deseas incluir: ";
    cin >> cuantos;
    
    while(cuantos>MAX_ciudades)
    {
                      cout << "Lo sentimos, el numero de maximo de ciudades que puede gestionar este programa son 20.\n";
                      cout << "Introduce de nuevo el numero de ciudades: ";
                      cin >> cuantos;
    }
    
    leer_ciudades(datos, cuantos);
    
    for(j=0;j<cuantos;j++)
    {
                          cout << datos[j].nombre << "\n";
                          cout << datos[j].habitantes << "\n";
                          cout << datos[j].codigo << "\n";
    }
    
    system("pause");
    return 0;
    
}
Por favor, ¿me podéis aclarar este error?. Un saludo y gracias por adelantado
  #2 (permalink)  
Antiguo 06/12/2008, 05:34
poi
 
Fecha de Ingreso: octubre-2008
Mensajes: 73
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Problemas pasando estructuras a una función

Solo te falta un ' ; ' cuando cierras la llave del struct.
struct ciudad{

};

Saludos
  #3 (permalink)  
Antiguo 07/12/2008, 06:55
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas pasando estructuras a una función

Buffff, que fallo más tonto. Y eso que lo repasé miles de veces y no me dí cuenta

Muchísimas gracias, has mejorado mi existencia en un 145%
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 14:23.