La mejor manera de leer el archivo binario c ++ a través de la redirección de entrada

Estoy tratando de leer una redirección de entrada de pensamiento de archivo binario grande (stdin) en tiempo de ejecución, ystdin es obligatorio.

./a.out < input.bin

Hasta ahora he usado fgets. Pero fgets salta espacios en blanco y nueva línea. Quiero incluir ambos. MicurrentBuffersize podría variar dinámicamente

FILE * inputFileStream = stdin; 
int currentPos = INIT_BUFFER_SIZE;
int currentBufferSize = 24; // opt
unsigned short int count = 0; // As Max number of packets 30,000/65,536
while (!feof(inputFileStream)) {
    char buf[INIT_BUFFER_SIZE]; // size of byte
    fgets(buf, sizeof(buf), inputFileStream);
    cout<<buf;
    cout<<endl;
}

Gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta