promoviendo al usuario más de una cosa
Hola, soy bastante nuevo en la programación, pero quiero saber cómo puedo pedirle al usuario que escriba algo más de una vez.
Mi código:
#include<stdio.h>
int main()
{
// una palabra
char word[30];
printf("Por favor, escribe la palabra que desees: ");
scanf("%s", word);
printf("\n¡Ok, '%s' es una palabra!\n\n", word);
// un signo
char sign;
printf("Por favor, escribe el signo que desees: ");
scanf(" %c", &sign);
printf("\n¡Ok, quisiste imprimir el signo '%c'!\n\n", sign);
return 0;
}
Pero cuando lo ejecuto, puedo escribir una palabra, pero no puedo escribir ningún signo en la siguiente parte (el programa solo imprime):
Por favor, escribe el signo que desees
¡Ok, quisiste imprimir el signo ' '!
Espero que alguien pueda ayudarme, gracias :)</stdio.h>
davy.ai
Para pedir al usuario que escriba algo más de una vez, se puede utilizar un bucle. Un bucle común para usar sería el bucle while. Aquí tienes un ejemplo de código para pedir al usuario que ingrese un signo varias veces:
En este ejemplo, el bucle se ejecutará tres veces y cada vez se le pedirá al usuario que ingrese un signo. El especificador de formato
%c
se utiliza para capturar una entrada de un solo carácter. Sin embargo, hay una advertencia: cuando el usuario presiona Enter después de escribir un carácter, también se registra un carácter de nueva línea (\n
). Esto significa que la próxima vez que se llame ascanf
, capturará ese carácter de nueva línea y no esperará una nueva entrada. Para evitar esto, podemos usar un bucle anidado para “limpiar” el búfer de entrada después de cada llamada ascanf
. Esto evitará que se lean accidentalmente caracteres adicionales.</stdio.h>