/ / Incluyendo ceros en fgetc - c, fgetc

Incluyendo ceros en fgetc - c, fgetc

Digamos que tengo un archivo con contenidos:

0a00 910c 4e65 7467

y quiero imprimir cada dos números por separado. Mi método actual es usar printf("%xn", fgetc(file)). Pero obtengo estos como resultados:

  • 0
  • 91
  • do
  • 4e
  • 65
  • 74
  • 67

Mi pregunta es: ¿a dónde fueron los otros ceros? ¿Cómo puedo asegurarme de que están incluidos también?

Respuestas

0 para la respuesta № 1

Los contenidos del archivo están en hexadecimal. No son "números" ya que en cada uno hay un personaje. No estás imprimiendo "dos números". Estás imprimiendo un byte. los %x El especificador es para hexadecimal.

Cuando haces un fgetc(), estás obteniendo un byte.

Un byte está representado por dos números hexadecimales. Esto es porque un byte puede tener 256 valores mientras que un número hexadecimal es 16 valores, y dos números hexadecimales tienen un total de 256 combinaciones.

Los personajes se enumeran uno por uno. 0a se convierte a. 00 se convierte 0. y así.