Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110

    [C] fread - problema semplice

    ho scritto:

    int ReadFile (void)
    {

    FILE *fp;
    char ch;
    int d,i;

    //leggo il file di Target

    if((fp=fopen(OUTFILE,"rt"))==NULL)
    {
    //fprintf(stdout,"Error read inf output file\r\n");
    //fflush(stdout);
    printf("Cannot open file.\n");
    exit(1);
    }

    fread(&d, sizeof(int),1,fp);
    printf("numero %d\n",d);

    printf("\n");
    dato quindi un file quello che ritengo debba fare è leggere la prima riga e stamparla.
    Ora mi chiedo, come mai mi riporta un numero (171248179) che all'apparenza sembra essere l'indirizzo di memoria in cui si trova la variabile?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [C] fread - problema semplice

    Originariamente inviato da earp_
    fread(&d, sizeof(int),1,fp);
    printf("numero %d\n",d);
    Stai leggendo dal file 4 byte che verranno scritti in memoria a partire dall'indirizzo della variabile 'd'. Ora ... tecnicamente è corretto, dipende se è quello che volevi davvero fare ...
    In questo caso si presuppone che nel file ci siano dei dati binari e non del testo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110
    nel file ci sono dei numeri per i quali poi devo svolgere delle operazioni, mi chiedevo perchè non riesco a visualizzare a video i numeri.
    ho usato prima una putchar ma mi è stato poi suggerito di utilizzare la fread, solo che non sembra darmi ciò che voglio ovvero visualizzare il contenuto del file.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da earp_
    nel file ci sono dei numeri per i quali poi devo svolgere delle operazioni, mi chiedevo perchè non riesco a visualizzare a video i numeri.
    ho usato prima una putchar ma mi è stato poi suggerito di utilizzare la fread, solo che non sembra darmi ciò che voglio ovvero visualizzare il contenuto del file.
    Se nel file c'è del testo, allora fread() non va bene, tantomeno se i byte li metti dentro una variabile int.

    Devi usare fgets(), documentati per bene.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    se il file è fatto di numeri io valuterei di usare la fscanf
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110
    nel file devo leggere delle lettere, per ogni riga devo scrivere da qualche parte quante lettere ho trovato.

    mi chiedevo quale funzione fosse adatta a tale scopo.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Complimenti per il titolo!
    Esplicativissimo!


    Correggo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usa la fgets(), come gia' consigliato ...

    P.S. Per Lele ... complimenti per l' "Esplicativissimo" ...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110
    mah... era nato semplice, poi si è evoluto...
    scherzi a parte vedo di impegnarmi (con il titolo) meglio la prossima volta.

    tks a tutti.

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da oregon
    P.S. Per Lele ... complimenti per l' "Esplicativissimo" ...
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.