Como eu criaria um utilitário de despejo hexadecimal em C ++?

Basicamente, eu preciso escrever um utilitário de despejo hexadecimal usando C ++. Vai ser algo parecido com isto

(Parte do despejo hexadecimal de um documento do Word usando o Visual Studio)

Eu quero solicitar ao usuário um nome de arquivo e, em seguida, exibir os valores hexadecimais, bem como os caracteres ASCII traduzidos. Eu ainda sou novo em trabalhar com arquivos binários, então se você pudesse mantê-lo simples, isso seria muito apreciado.

questionAnswers(2)

yourAnswerToTheQuestion