Consulta sobre scanf()

Consulta sobre scanf()

de Juan Marcelo Mereles Vallejos -
Número de respuestas: 1
Hola buenas tardes, quería consultar cual sería el equivalente a realizar un readln() en Pascal. Me refiero a como tendría que escribir el scanf() para que me lea una línea y no me "saltee" el primer carácter que se tipea en una siguiente instrucción scanf().
Pongo un ejemplo: 

Tengo: 

printf("Ingrese el largo de su frase: ");

scanf("%d",&largo);

Pero luego cuando voy a ingresar la frase:

printf("Ingrese su frase: ");

for (int i = 0; i < largo; i++)

scanf("%c", &cadena[i]);

Me lee los caracteres de la frase -1

Si ingreso que la frase tiene 6 caracteres, y luego ingreso la frase "narran", en el arreglo se guarda "narra"

Espero no sea muy confuso y si lo es veo de reformular la pregunta de otra manera, gracias



 
En respuesta a Juan Marcelo Mereles Vallejos

Re: Consulta sobre scanf()

de Matias Richart -
Hola.

Ese comportamiento se debe a que el primer scanf (el del largo), consume el entero pero no el salto de línea siguiente.
Ese salto de línea es consumido por el primer scanf del for y almacenado en el primer lugar del arreglo.

Espero se entienda.

Saludos