Pregunta

Digamos que tengo un número de matriz que contiene los valores siguientes:

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

Ahora, me gustaría escalar esos números en valores de un solo byte y almacenarlos en una matriz de caracteres

char numbersscaled;  

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

Por último, me gustaría escribir estos valores como un archivo binario de la siguiente manera:

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

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

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

fclose(filebin);   

Por desgracia, cuando se trata de compilar este programa gcc no le gusta el comando fwrite:

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

Cualquier persona una idea de lo que me falta? Gracias!

¿Fue útil?

Solución

Sí, se está perdiendo sizeof.

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

Tenga en cuenta que hay muchos errores tipográficos en su pregunta (faltan [], etc), por lo que es difícil de detectar el problema real. Por favor solucionarlo.

Otros consejos

numbersscaled debe ser array de caracteres no Char.

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

Algo no está bien con,

numbersscaled/numbersscaled[0]

No es char numberscaled[4]? aunque se ha declarado como un char en su pregunta.

Usted debe leer la página fwrite hombre otra vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top