3° Anno TEORIA 9. Tipi di dato strutturato: vettori e record | Page 49

8 : I dati e la loro struttura nella programmazione ( ARRAY , MATRICI , RECORD ) Vers . 8.2 – Settembre 2022
Esempio 7 BIS : Implementazione in C dell ’ esempio n . 7
# include < stdio . h > # include < stdlib . h > # include < string . h >
// definizione del nuovo tipo sottorecord utente DettagliLibro typedef struct { char Isbn [ 10 + 1 ]; char Titolo [ 100 + 1 ]; char Autore [ 50 + 1 ]; char CasaEditrice [ 50 + 1 ]; } DettagliLibro ;
// definizione del nuovo tipo record utente Libro typedef struct { DettagliLibro DetLib ; float Prezzo ; int Pagine ; } Libro ;
int main ( int argc , char * argv []) { // Dichiarazione di una variabile record di tipo Libro Libro lib ;
// Leggo la variabile record lib di tipo Libro campo x campo effettuando // tutti i controlli // N . B . la LETTURA o CARICAMENTO è un ' operazione NON ATOMICA printf ("************* Lettura dati del record ***************\ n "); // Isbn do { printf (" Inserisci Isbn : "); gets ( lib . DetLib . Isbn ); } while (( strlen ( lib . DetLib . Isbn ) == 0 ) || ( strlen ( lib . DetLib . Isbn ) > 10 ));
// Titolo Per accedere ad un campo del record lib che fa parte do del sottorecord di tipo DettagliLibro , occorre
{ utilizzare più volte ( in questo caso due ) la dot notation printf (" Inserisci Titolo : "); passando per il campo di nome DetLib gets ( lib . DetLib . Titolo ); } while (( strlen ( lib . DetLib . Titolo )== 0 ) || ( strlen ( lib . DetLib . Titolo )> 100 ));
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 49