tengo un problema, y es que cuando el usuario escribe mas de un caracter por error, los distintos scanf leen caracter por caracter todos los que se introdujeron (ni siquiera poniendo \n lo solucione)
la unica solucion que se me ocurrre usando scanf es usar fflush.. pero no me dejan usar esa funcion.
que cosas cambiariais para que funcionase mejor o que le quiariais / añadiriais???
gracias!
Código:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LONG 100
void main()
{
char c[MAX_LONG], cb, c2[MAX_LONG], cond, encont; int i;
printf("Introduce una frase:\n\n");
fgets(c,99,stdin);
do
{
cond = 'N';
printf("\nIntroduce caracter a buscar: ");
scanf("\n%c",&cb);
for(i=0, encont = 'N';(i<MAX_LONG) && (c[i] !='\0');i++)
{
if (c[i] == cb) {c2[i] = 'V'; encont = 'S';}
else {c2[i] = 'F';}
}
if (encont == 'S')
printf("Se ha encontrado el caracter buscado (%c) en las posiciones de la cadena: ", cb);
else
printf("No se ha encontrado el caracter buscado (%c)", cb);
for(i=0;(i<MAX_LONG) && (c[i] != '\0');i++) {if (c2[i] == 'V') printf("%d, ", i);}
printf("\n\nDesea buscar otro caracter??(Contesta S o N): ");
scanf("\n%c", &cond);
}while((cond == 'S')||(cond == 's'));
printf("\n");
system("pause");
}