in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

Scrivere un programma in C

Ultimo messaggio ricevuto il 09-06-2009 10.15 da devspy. 1 risposta(e).
Pagina 1 di 1 (2 elemento/i)
Ordina messaggi: Precedente Successivo
  • 30-05-2009 18.46

    • Luna
    • Non Valutato
    • Registrato il 30-05-2009
    • Messaggi 1

    Scrivere un programma in C

    Ciao a tutti...mi sono appena iscritta!!

    Mi serve urgentemente l'aiuto di qualcuno esperto in programmazione nel linguaggio C.

    Questa è la traccia del mio problema: Scrivere un programma che crei un file binario per registrare i libri di una biblioteca: per ogni libro devono essere indicati il codice ISN, il titolo, l'autore, la casa editrice, il prezzo, il numero di copie disponibili.

    Ringrazio già da ora chi gentilmente si offre di aiutarmi...

    • Log
  • 09-06-2009 10.15 In risposta a

    Re: Scrivere un programma in C

    Qui trovi una guida semplice, ma abbastanza chiara e completa su come leggere e scrivere file binari in C:

    C File I/O and Binary File I/O

    Un buon punto di partenza.

    Probabilmente, però, troverai utile modificare direttamente questo codice adattando la struttura dell'esempio ai dati necessari per la registrazione di un libro:

     

    /* binaryrw.c written by detour@metalshell.com
    *
    * Example of writing a struct to a binary file and then
    * reading it back in.
    *
    * http://www.metalshell.com/
    *
    */

    #include <stdio.h>

    struct zigzag {
    int a;
    char b[20];
    };

    int writeBinary(const struct zigzag);
    int readBinary(struct zigzag *);

    int main() {
    struct zigzag myZig, inZig;
    struct zigzag *ptr;

    /* the memory address we will send to readbinary */
    ptr = &inZig;

    /* assign some dummy values */
    myZig.a = 24;
    strcpy(myZig.b, "Blubber");

    /* Write the struct myZig and then read it back in */
    if(writeBinary(myZig))
    exit(1);
    if(readBinary(ptr))
    exit(1);

    /* proof that it was successful */
    printf("inZig.a: %d\n", inZig.a);
    printf("inZig.b: %s\n", inZig.b);
    }


    int writeBinary(const struct zigzag j) {
    FILE *outFile;

    /* open the file we are writing to */
    if(!(outFile = fopen("binout", "w")))
    return 1;

    /* use fwrite to write binary data to the file */
    fwrite(&j,sizeof(struct zigzag),1,outFile);

    fclose(outFile);

    return 0;
    }

    int readBinary(struct zigzag *b) {
    FILE *inFile;

    if(!(inFile = fopen("binout", "r")))
    return 1;

    fread((struct zigzag *)b,sizeof(struct zigzag),1,inFile);

    fclose(inFile);

    return 0;
    }
    Archiviato in:
    • Log
Pagina 1 di 1 (2 elemento/i)
Prelevato da http://www.devspy.com/forums/t/4848.aspx
DevSpy.com 6.0 © 2001-2010 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"