Escribiendo valores enteros en un archivo binario
-
21-08-2019 - |
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!
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.