[C con Clase] Problemas con "Switch"

miguel mvillagomez en sayab.com.mx
Mie Mayo 2 16:52:49 CEST 2007


fgets(cad, TAM, stdin);

No te serviría utilizar otra función para leer tu cadena?
Puedes usar el scanf, ó gets ó cin; por que si entiendo bien la función
de fgets se usa para leer de archivos; tu aquí en lugar de leer de un
archivo estas leyendo de la entrada estándar.

char *fgets(char *cadena, int n, FILE *stream);

Si bien, tu problema tal vez sea la entrada estándar en si.

El lun, 30-04-2007 a las 18:50 -0300, Omar Murray escribió:
> Hola lista:
> 
> Les paso esta parte de código:
> 
> [...]
> scanf("%d",&a);
> 
> while (a!=4){
>     switch(a)
>             {
>             case 1: cad2int();
>             break;
> 
> [...]
> 
> //****************************FUNCION CADENA A
> ENTERO********************************
> void cad2int()
> {
> char cad[TAM],numero[TAM];
> int x=0, y;
> printf("Ingrese cadena: ");
> fgets(cad, TAM, stdin);
> for (y=0;y<TAM;y++)
>      { if(cad[y]>='1' && cad[y]<='9')
>          {numero[x]=cad[y]; x++; }
>      }
> numero[x]='\0';
> printf("\nEl numero de DNI: \"%s\" es ahora el entero: %d\n", numero,
> atol(numero));
> }
> 
> Cuando eligo con el "switch" la opción '1' no me permite, cuando pasa a la función, ingresar el valor de la variable "cad" con la función fgets. Calculo que debe ser un error mio en el switch, porque esta función si la compilo separadamente me funciona sin problemas....
> 
> No puedo encontrar el error, alguien me podría dar una pista...?
> 
> Gracias y saludos.
> 
> 
> 
> 
> 





Más información sobre la lista de distribución Cconclase