Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Domanda file binari: Perchè il file binario pesa più dei byte scritti?

    Salve a tutti. Ho scritto un programma in C che mi scrive 7 interi (sul mio sistema occupano 4 byte l'uno, ottenuto con sizeof(int)), il problema è che il file pesa + di 100byte.. i primi 7 sono quelli che volevo gli altri sembrano essere stati messi "a caso".. E' un errore mio oppure il C scrive + byte? Ho provato con un hex editor a cancellare tutti i byte dal file binario tenendo i primi 7 e non mi da problemi in lettura... quindi quei byte sono assolutamente inutili.. non segnano la fine del file vero? 100byte mi sembrano eccessivi..

    Sapreste spiegarmi la ragione di questi byte? A me sembra insolito.


    Grazie a tutti, vi allego il programma scritto in c per scrivere/leggere.

    Codice PHP:
    /*
     *  file.c
     *  
     *
     *  Created by Tommaso Ricci on 07/05/11.
     *  Copyright 2011 __MyCompanyName__. All rights reserved.
     *
     */

    #include <stdio.h>

    void read(int number){
        
        
    FILE fp fopen("prova.dat""rb");
        
    int n[number], i;
        
        
    fread(nsizeof(n[0]), numberfp);
        
    fclose(fp);
        
        for (
    i=0i<numberi++) {
            
    printf("%d "n[i]);
        }
        
    printf("\n");
        
        return;
    }

    void write(int numint sizeint elements){
        
        
    FILE fp fopen("prova.dat""wb");
        
        
    fwrite(numsizeelementsfp);
        
    fclose(fp);
        
        return;
    }

    int main(int argcchar argv[]){
        
        
    int n 7mio[n] = {7,6,5,4,3,2,1};
        
            
    //printf("%d\n", sizeof(int));
            //read(n);
        
    write(miosizeof(int), 7);
        
        return 
    0;
        


  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156

    Re: [C] Domanda file binari: Perchè il file binario pesa più dei byte scritti?

    alla write passi 7 * sizeof(int) e 7
    e li usi nella fwrite, scrivendo quindi un totale di 7 * 4 * 7 byte.

    EDIT passa solo sizeof(int) e 7 alla write.

  3. #3

    Re: Re: [C] Domanda file binari: Perchè il file binario pesa più dei byte scritti?

    Originariamente inviato da zucchino
    alla write passi 7 * sizeof(int) e 7
    e li usi nella fwrite, scrivendo quindi un totale di 7 * 4 * 7 byte.
    Si scusatemi me ne sono accorto dopo xD

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.