Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
¿Por qué sscanf lee más de lo esperado?

sscanf admite %n para contar cuántos bytes se leen.

¿Por qué sscanf a veces lee bytes adicionales?

 #include <stdio.h> int main() { char *data = "X\n \n\x09\n \x10\n"; int len = 0; sscanf(data, "X%n", &len); printf("%i\n", len); sscanf(data, "X\n%n", &len); printf("%i\n", len); return 0; }

Este programa imprime:

 1 7

Yo esperaría:

 1 2

(1 para X y 2 para X\n .)

¿Por qué lee más bytes de lo esperado?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

De cppreference :

La cadena de formato consta de

  • caracteres multibyte sin espacios en blanco excepto %: cada uno de estos caracteres en la cadena de formato consume exactamente un carácter idéntico del flujo de entrada, o hace que la función falle si el siguiente carácter en el flujo no se compara igual.

  • caracteres de espacio en blanco: cualquier carácter de espacio en blanco único en la cadena de formato consume todos los caracteres de espacio en blanco consecutivos disponibles de la entrada (determinado como si llamara a isspace en un bucle). Tenga en cuenta que no hay diferencia entre "\n", " ", "\t\t" u otros espacios en blanco en la cadena de formato.

Por lo tanto, su \n en la segunda cadena de formato hará que la función consuma todos los espacios en blanco restantes, que en realidad son los 6 caracteres que siguen a la X y preceden al 0x10 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda