Tengo que realizar un proyecto para el cual cuento con varios archivos; tanto *.c como *.h. Mi problema viene cuando tengo que referirme a alguna estructura que se encuentra en otro archivo diferente al que estoy usando para escribir el código. Sí que me reconoce las estructuras que tengo creadas, pero al referirme a cada parte suya me da errores. Os paso ese trozo del código:
Código:
printf("Codigo de linea: "); gets(linea->ID);
printf("Nombre de la linea: "); gets(linea->nombre);
printf("Laborales (0), Sabados(1), Festivos(3): "); scanf("%d",&linea->servicio.tipo);
printf("Ruta: "); scanf("%s %s", &linea->Ruta.origen, linea->Ruta.destino);
printf("Hora de salida: "); scanf("%d:%d", &linea->horIni.hora, linea->horFin.min);
printf("Salida desde: "); gets(linea->sal);
printf("Hora de finalizacion: "); scanf("%d:%d", &linea->horFin.hora, linea->horFin.min);
printf("Llegada a: "); gets(linea->lleg);
void anadirParada(TipoParada *parada);
Pues bien, en este código me da errores cuando leo lo que se ha introducido por teclado, si es que me tengo que referir a una estructura que se encuentra dentro de otra. Por ejemplos, con este código:
scanf("%d",&linea->servicio.tipo);
Me dice que tengo un error de sintaxis:
'.tipo' : el operando izquierdo señala a 'struct'; utilice '->'
He probado a cambiar '.' por '->', y se me soluciona el error...
Lo que no entiendo es por qué en ese caso se tiene que escribir así...pero en los otros, q son del mismo estilo (p.e.
scanf("%s %s", &linea->Ruta.origen, linea->Ruta.destino);) no me pide que lo cambie.
La estructura a la que estoy llamando es esta:
Código:
struct sServicio
{
unsigned char tipo; // 0: laborables; 1: sábados; 2: festivos
int frecuencia; // frecuencia en minutos
HORA primserv;//primer servicio
HORA ultserv;// ultimo servicio
};
typedef struct sServicio TipoServicio;
struct sTipoRuta
{
TipoParada origen, destino;
};
typedef struct sTipoRuta TipoRuta;
struct sTipoLineaBus
{
char ID[10]; // identificador de linea (L1, L2, C1,...)
char nombre[50]; // nombre de la linea (p.e. COVARESA - SAN PEDRO REGALADO)
TipoServicio servicio[3]; // laborables , sábados, festivos
TipoRuta Ruta; // ruta que sigue el autobus
HORA horIni; //hora de salida de la linea
char sal[20]; //salida de la linea
struct sListaParadas paradas; //enumeracion de paradas (hasta 15, si hacen falta mas se añaden despues)
char lleg[20]; //llegada de la linea
HORA horFin; //hora de finalizacion
HORA perLab; //periodicidad de repeticion de paradas dias laborables
HORA perFin; //periodicidad de repeticion de paradas fines de semana-n
}; //datos de una linea de bus
typedef struct sTipoLineaBus TipoLineaBus;
Utilizo Visual C++ 2008 Express Edition, y el lenguaje es C
Muchas gracias de antemano!