es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Escribiendo un byte a un archivo en C++

Estoy tratando de escribir un byte en un archivo en C++. Cuando lo guardo, tiene un tamaño de 8 bytes en lugar de 1 byte. ¿Cómo puedo guardar exactamente un byte?

ofstream binFile("compressed.bin", ios::out | ios::binary);
bitset<8> a("10010010");
binFile << a;

Resultado de ls -la:

-rw-r--r-- nombre de usuario staff   8 B  sáb dic  4 23:26:18 2021  compressed.bin

¿Cómo puedo reducirlo a un byte?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ahorrar exactamente un byte, puedes usar el siguiente código:

    ofstream binFile("compressed.bin", ios::out | ios::binary);
    char a = 0b10010010;
    binFile.write(&a, sizeof(char));
    binFile.close();
    

    En este código, estamos declarando una variable a de tipo char y asignándole el valor de 0b10010010, que es la representación binaria del byte que deseas guardar.

    Luego, usamos la función write del objeto ofstream para escribir el valor de a en el archivo. El argumento sizeof(char) especifica la cantidad de bytes a escribir, que en este caso es 1.

    Finalmente, cerramos el archivo usando la función close.

    Con este código, la salida de ls -la debería mostrar que el tamaño del archivo es de 1 byte.

Comments are closed.