Sobre un programa de C

Hola tengo un problemilla con un programa de C, me gustaría que me dijeses porque no hace lo que yo quiero que es lo siguiente. Yo le doy un número por ejemplo un 4 y un carácter # y me tendría que mostrar lo siguiente:
####
####
####
####
Esto mismo al introducirotro numero en vez del carácter me lo hace bien, no se que pasa.El programa es el siguiente:
#include <stdio.h>
void funcion(int,char);
main()
{
int x;
char caracter;
printf("numero\n");
scanf("%d", &x);
printf("caracter\n");
scanf("%d", &caracter);
funcion(x,caracter);
}
void funcion (int numero, char c)
{
int i;
int j;
for(i=1;i<=numero;i++){
for(j=1;j<=numero;j++)
printf("%c", c);
printf("\n");
}
}
No me deja leer el carácter no lo entienod me deja leer el entero pero el carácter no, el programa compila bien pero no me deja hacer lo que yo quiera. Muchas gracias y perdón si es un poco larga la pregunta

1 Respuesta

Respuesta
1
El problema es que scanf no elimina el carácter ENTER del buffer de entrada de datos, emplea fflush(stdin) para limpiar el buffer y que no se brinque el segundo scanf.
#include <stdio.h>
void funcion(int,char);
int main()
{
int x;
char caracter;
printf("numero\n");
scanf("%d", &x);
printf("caracter\n");
fflush(stdin);
scanf("%c", &caracter);
funcion(x,caracter);
return 0;
}
void funcion (int numero, char c)
{
int i;
int j;
for(i=1;i<=numero;i++){
for(j=1;j<=numero;j++)
printf("%c", c);
printf("\n");
}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas