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

317
Vistas
¿Por qué 'scanf' y 'getchar' agregan una nueva línea a la entrada?

Estoy tratando de probar esta tabla de búsqueda simple, pero no puedo entender por qué tanto scanf como getchar agregan el carácter de nueva línea ( '\n' ) a la entrada:

 const int arr[10] = {1,0,5,7,6,4,8,2,9,3}; char digit; printf("enter digits please\n"); digit = getchar(); while ((digit>='0') && (digit<='9')) { printf("%d --> %d\n",digit,arr[digit-'0']); digit = getchar(); } printf("bye bye!");

cuando se ejecuta este código, tanto con printf como con getchar() , el ciclo while se ejecuta solo una vez, ya que el carácter de nueva línea ( '\n' ) también se almacena en el digit de la variable char, y no puedo entender por qué.

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

0

Cuando presiona la tecla Intro , agrega una nueva línea a la entrada. Si quieres saltarte eso, tienes que saltarte eso. Una forma sencilla es usar scanf con un espacio en la cadena de formato, que omite todos los espacios en blanco. Usar:

 scanf(" %c", &digit);

en lugar de digit = getchar(); en los dos lugares que haces eso.

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