Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 47
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    [C] scrivere una struct in un file

    ciao a tutti
    devo scrivere una struct in un file .dat
    ho pensato di fare in questo modo, ma non so come procedere nella scrittura
    mi date qualche consiglio?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define maxchar 20
    #define N 10
    /*
     *
     *
     * 
     */
    
    struct assegnazione{
        int Numero_appartamento;
        char Nome_Proprietario[maxchar];
        char Cognome_Proprietario[maxchar];
        int Settimana_acquistata;
    };
    int main() {
    
        int i;
    
        FILE *cfPtr;
        
        struct assegnazione ass = { 0, "", "", 0};
    
        if ((cfPtr = fopen ("proprietà.dat", "wb")) == NULL){
            printf ("Il file non può essere aperto");
        }
        else{
            printf("Inserisci dati\n");
            printf("\n%-15s%-15s%-15s%-15s", "NUMERO APP", "NOME PROPR", "COGNOME PROPR", "SETTIMANA\n");
            for (i = 0; i < N; i++){
                scanf ("%d%s%s%d", &numero, nome, cognome, &settimana);
                
            }
    
        }
    
        return 0;
    }

  2. #2
    per scrivere un record su file devi fare così
    codice:
    #include <stdio.h>
    
    #define maxchar 20
    #define N 10
    
    struct assegnazione{
        int Numero_appartamento;
        char Nome_Proprietario[maxchar];
        char Cognome_Proprietario[maxchar];
        int Settimana_acquistata;
    };
    
    int main ()
    {
    	FILE * cfPtr;
    	struct assegnazione ass = { 0, "", "12", 0};
      
    	cfPtr = fopen ( "proprietà.dat" , "wb" );
    
    	fwrite (&ass , 1 , sizeof( struct assegnazione ) , cfPtr );
    	
    	fclose ( cfPtr );
    	return ( 0 );
    
    }
    attenzione che se apri il file in modalità w tutte le volte sovrascivi il file, se vuoi appendere un record devi usare la opzione "a"

    ciao
    sergio

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [C] scrivere una struct in un file

    Originariamente inviato da jurij7
    mi date qualche consiglio?
    Ma non ti avevo detto nel'altro thread di usare la

    fwrite

    ?

    Ho risposto inutilmente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    si ho capito la fwrite..ma per inserire i dati dalla struttura al file...devo prima metterli nella struttura e poi dalla struttura al file?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Originariamente inviato da mondobimbi
    per scrivere un record su file devi fare così
    codice:
    #include <stdio.h>
    
    #define maxchar 20
    #define N 10
    
    struct assegnazione{
        int Numero_appartamento;
        char Nome_Proprietario[maxchar];
        char Cognome_Proprietario[maxchar];
        int Settimana_acquistata;
    };
    
    int main ()
    {
    	FILE * cfPtr;
    	struct assegnazione ass = { 0, "", "12", 0};
      
    	cfPtr = fopen ( "proprietà.dat" , "wb" );
    
    	fwrite (&ass , 1 , sizeof( struct assegnazione ) , cfPtr );
    	
    	fclose ( cfPtr );
    	return ( 0 );
    
    }
    attenzione che se apri il file in modalità w tutte le volte sovrascivi il file, se vuoi appendere un record devi usare la opzione "a"

    ciao
    sergio
    in questo modo inserisco il record con questi elementi {0,"","12",0}, quindi praticamente devo inserire un record per volta?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ciè se io devo assegnare tanti dati al file devo fare tante istruzioni di questo tipo :

    codice:
    struct assegnazione ass = { 0, "", "12", 0};

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    io devo inserire un certo numero n di dati (record) in formato struttura nel file...non posso mica metterli uno per uno

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    Re: Re: [C] scrivere una struct in un file

    Originariamente inviato da oregon
    Ma non ti avevo detto nel'altro thread di usare la

    fwrite

    ?

    Ho risposto inutilmente?
    non hai risposto inutilmente solo credevo di aprire un nuovo thread perchè l'argomento si discostava da quello del titolo.
    cmq non ho ancora capito come fare...devo usare la fwrite..ho capito, ma come faccio ad inserire i dati da tastiera nel file (in formato struttura) ?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Re: Re: [C] scrivere una struct in un file

    Originariamente inviato da jurij7
    inserire i dati da tastiera nel file (in formato struttura) ?
    Dalla tastiera nella struttura mi pare che tu l'abbia gia' fatto, no?

    Dalla struttura nel file li scrivi con la fwrite !!!
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Originariamente inviato da jurij7
    in questo modo inserisco il record con questi elementi {0,"","12",0}, quindi praticamente devo inserire un record per volta?
    li leggi da tastiera ad uno ad uno e li scrivi nel file (che prima crei e dopo apri in modalità append) oppure memorizzi in una array di "assegnazione" e li scrivi tutti insieme nel file.
    Se fossero 10 record
    codice:
    fwrite (&ass , 10 , sizeof( struct assegnazione ) , cfPtr );
    dove ass punta al primo elemento dell'array.
    ciao
    sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.