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

330
Vistas
why 'scanf' & 'getchar' adds newline to the input?

I'm trying to test this simple look up table, but can't understand why both scanf and getchar add the newline character ('\n') to the input:

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!");

when runnnig this code, both with printf or getchar() the while loop executes just once, since the newline char ('\n') is also stored in the char variable digit, & I can't figure out why.

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

0

When you press the Enter key, it adds a newline to the input. If you want to skip that, you need to skip that. One easy way is by using scanf with a space in the format string, which skips all whitespace. Use:

scanf(" %c", &digit);

instead of digit = getchar(); in the two places you do that.

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