es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Al escanear una matriz de caracteres, no se enviará al presionar la tecla [ENTER].

Hola, soy un principiante en programación y en C. Estoy tratando de escanear una matriz de caracteres, pero cuando presiono enter en lugar de enviar mi entrada, va a la siguiente línea y luego escribo cualquier carácter y al presionar enter lo envía. ¿Qué está mal con mi código? Por cierto, estoy usando un IDE de CodeBlocks. Gracias, lo siento por la pregunta de novato, no puedo encontrar ninguna respuesta.

EDITADO: Respondí mi propia pregunta jajaja me di cuenta de que agregué \n en la función scanf

“`C
#include <stdio.h>
#include <conio.h>

int main()
{
char name[21];
printf("¿Cuál es tu nombre?\n");
scanf("%s\n", name);

printf("%s\n", name);

getch();
return 0;
}
“`</conio.h></stdio.h>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que se añade “\n” en la función scanf. Esto hace que la función busque el carácter de nueva línea después de la entrada, y por lo tanto la tecla “enter” se interpreta como ese carácter de nueva línea. Quitar “\n” de la función scanf debería resolver el problema.

    Aquí está el código corregido:

    #include <stdio.h>
    
    int main()
    {
      char name[21];
      printf("¿Cuál es tu nombre?\n");
      scanf("%s", name);
    
      printf("¡Hola, %s!\n", name);
    
      return 0;
    }
    

    Tenga en cuenta que la biblioteca conio.h no es necesaria para este programa, por lo que se eliminó. Además, el mensaje de salida se editó para mayor claridad.</stdio.h>

Comments are closed.