Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C++] Uso della fread

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    96

    uso della fread

    Salve a tutti! Avrei un po di quesiti:


    #include<stdio.h>

    typedef struct {
    int i;
    char stringa[15];
    long p;
    int h;
    } provastruct;

    main()
    {

    //ho un file di nome prova che all'interno e' scritto cosi': "questaèunaprova"
    //apro il file
    FILE * fp = fopen ("provola", "rb");

    // alloco la struttura
    provastruct* prova = malloc(sizeof(provastruct));

    //devo scrivere all'interno della struttura la stringa contenuta dal file

    // LE MIE DOMANDE SONO QUESTE :
    // 1) perche' non dovrebbe essere corretto il primo argomento della fread visto che accetta un indirizzo?
    // 2) come potrei fare a memorizzare la stringa nella struttura (facendo uso del puntatore alla struttura)
    // senza usare una stringa di appoggio?

    fread (prova + sizeof(int), 15, 1,fp);

    return 0;
    }
    :master:

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Credo che dovresti fare
    codice:
    fread(prova.stringa,15,1,fp);
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da rufuss
    Salve a tutti! Avrei un po di quesiti
    Il linguaggio anche nel titolo, come da Regolamento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XWolverineX
    Credo che dovresti fare
    codice:
    fread(prova.stringa,15,1,fp);
    No. Dato che prova e' un puntatore a quella struttura allocata dinamicamente, devi scrivere

    fread (prova->stringa, 15, 1, fp);

    Attenzione anche al fatto che si deve prevedere lo spazio per il terminatore (\0) nella stringa.

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da oregon
    No. Dato che prova e' un puntatore a quella struttura allocata dinamicamente, devi scrivere

    fread (prova->stringa, 15, 1, fp);

    Attenzione anche al fatto che si deve prevedere lo spazio per il terminatore (\0) nella stringa.
    Hai ragione, me ne ero dimenticato
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    96
    Già era banale......certe volte mi complico la vita! Grazie!

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.