Domanda

Diciamo che ho un numero di matrice che contiene i seguenti valori:

int numbers = [12, 511, 337, 254];

Ora, vorrei scalare quei numeri in valori singoli byte e memorizzarli in un array di char

char numbersscaled;  

for(i=0; i<4; i++) {  
    numbersscaled[i] = numbers[i]/2;  
}  

Infine, vorrei scrivere quei valori come file binario nel seguente modo:

filebin = fopen("results.bin", "wb");  

if(file==NULL) {   
    printf("Error\n");  
    return 1;  
}  

fwrite(numbersscaled, sizeof(numbersscaled[0]),
         numbersscaled/numbersscaled[0], filebin);  

fclose(filebin);   

Purtroppo, quando si cerca di compilare questo programma gcc non piace il comando fwrite:

error: invalid operands to binary / (have ‘char *’ and ‘int’)

Chiunque un idea di cosa mi manca? Grazie!

È stato utile?

Soluzione

Sì, vi state perdendo sizeof.

sizeof(numbersscaled)/sizeof(numbersscaled[0])

Si noti che ci sono molti errori di battitura nella tua domanda (mancanti [], etc), rendendo difficile individuare il vero problema. Si prega di risolvere il problema.

Altri suggerimenti

numbersscaled dovrebbe essere array di caratteri non char.

fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin); 

qualcosa che non va con,

numbersscaled/numbersscaled[0]

Non è char numberscaled[4]? tho si è dichiarato come un char nella sua interrogazione.

Si consiglia di leggere nuovamente la pagina fwrite dell'uomo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top