una - Crear mapa de bits en C-¿Cómo escribir/r/n como 1 byte?
que es una imagen vectorial (1)
ios::binary
usar ios::binary
bandera ios::binary
cuando se trata de archivos que no son de texto, siempre:
ofstream myfile;
myfile.open ("example.bin", ios::out | ios::app | ios::binary);
Si está utilizando Windows y no especifica el indicador ios::binary
al abrir sus transmisiones aquí, ¿qué ocurre?
13 10
secuencias se convierten a 10
al leer: datos corruptos en la memoria. Si los datos son binarios en primer lugar, no tendrías la suerte de obtener esas secuencias, pero puede suceder
10
se convierte a 13 10
(CR + LF) al escribir. Eso es más probable que suceda y corrompe su archivo de salida.
Nota: incluso si está dañado, leer como texto y escribir como binario corrige la corrupción (o reemplazar 13 10
por 10
)
Intento crear un mapa de bits en C. En primer lugar, lo que quiero hacer es copiar el encabezado y todos los datos de píxeles de otro archivo de mapa de bits. El problema es con el número ''10'', que cuando estoy leyendo es solo 1 byte, pero cuando lo escribo son 2 bytes. Sé sobre / r / n cosas, pero ¿cómo, por ejemplo, Paint puede guardarlo como 1 char?
Estoy leyendo encabezado de esta manera:
unsigned char* header = malloc(54);
fread(header, sizeof(unsigned char), 54, file);
y escribiendo de esta manera:
fwrite(img->fileHeader, sizeof(unsigned char), 54, file);