PDA

View Full Version : [C] problema su struttura


-hide-
22-12-2008, 16:42
# include <stdio.h>
# include <stdlib.h>

# define NCHAR 20

typedef struct { //OPEN struct
short int giorno;
short int mese;
int anno;
} //CLOSED struct
data;

typedef struct { //OPEN struct
short int ore;
short int minuti;
} // CLOSED struct
ora;

typedef struct { //OPEN struct
char marca_modello[NCHAR];
char colore [NCHAR];
char cognome [NCHAR];
char nome [NCHAR];
char danni [50];
int lavaggio;
data data_consegna;
ora ora_consegna;
} //CLOSED struct
ordinazione;


int main ()
{ //OPEN main
short int scelta; // Scelta per il menù
short int s; //Scelta del lavaggio
for (;scelta!=0;)
{ //OPEN for
printf ("1 - Inserisci articolo\n");
printf ("0 - Esci dal programma\n\n");
printf (" Digita: ");
scanf ("%hd", &scelta);
switch (scelta)
{ //OPEN switch
case 0: //Exit
break;
case 1: //Inserisci articolo
printf ("Inserisci di seguito gli elementi richiesti\n");
printf ("Modello della macchina: ");
scanf ("%s", ordinazione.marca_modello);
printf ("Colore: ");
scanf ("%s", ordinazione.colore);
printf ("Cognome proprietario: ");
scanf ("%s", ordinazione.cognome);
printf ("Nome propietario: ");
scanf ("%s", ordinazione.nome);
printf ("Descrizione danni prima della consegna: ");
scanf ("%s", ordinazione.danni);
printf ("Tipo di lavaggio: ");
printf ("\t11 - Interno\n");
printf ("\t12 - Esterno\n");
printf ("\t13 - Entrambi\n\n");
scanf ("%hd", &s);
switch (s)
{ //OPEN switch2
case 11: printf ("Esterno");
break;
case 12: printf ("Interno");
break;
case 13: printf ("Entrambi");
break;
default: printf ("Scelta sbagliata");
} //CLOSED switch2
} //CLOSED switch1
} //CLOSED for
return 0;
} //CLOSED main


Questo è il codice del programma.

L'errore è sulla parola "ordinazione" negli scanf. Perché non posso indirizzare all'unica struttura creata. Si deve perforza definire una nuova struttura di tipo "ordinazione"?

Kenger
22-12-2008, 19:03
Questo è il codice del programma.

L'errore è sulla parola "ordinazione" negli scanf. Perché non posso indirizzare all'unica struttura creata. Si deve perforza definire una nuova struttura di tipo "ordinazione"?

Non dichiari da nessuna parte una variabile di tipo ordinazione. Usando la typedef dici solo come sarà fatta una tale variabile, ma non la crei da nessuna parte.

-hide-
23-12-2008, 13:25
:muro:

Vero. In quel modo io definisco un tipo e non una variabile.
E scrivere ordinazione.colore equivale a scrivere int.colore
Non ci avevo pensato a questo errore.

Ok grazie per la dritta, proseguo col programma.