[C con Clase] Problemas con "Switch"

Omar Murray esomy_m en yahoo.es
Mie Mayo 2 14:27:53 CEST 2007


hectorfh en gmail.com escribió:
> Hola Omar:
> 
> Puede parecer estúpido, pero antes de forzar la cerradura, fijémonos
> si esta abierta la puerta. ¿Estás seguro que el programa está entrando
> a la función?
> 
> Saludos
> 

Si entra... mira,paso gran parte del código para que lo vean...

++++++++++++++++++++++++++++++++COMIENZO+++++++++++++++++++++++++++++

# include <stdio.h>
# include <conio.h>
#define TAM 20
void cad2int(void);
void int2cad(int);

void main ()
{
int a;
int entero;

clrscr();
printf("\nIngrese Dato\n");

printf("\nElija opcion");
printf("\n1. Cadena de char");
printf("\n2. Entero");
printf("\n3. XXX\n");
printf("\n4. Salir.");
scanf("%d",&a);
fflush(stdin);
while (a!=4){
        switch(a)
            {
            case 1: cad2int();
            break;
            case 2: scanf("%d%", &entero); int2cad(entero);
            break;
            default: printf("\nINGRESO ERRONEO");
            }
            printf("\n\nElija opcion");
            printf("\n1. Cadena de char");
            printf("\n2. Entero");
            printf("\n4. Salir\n.");
            scanf("%d",&a);
            }
getch();
}

//************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));
}
++++++++++++++++++++++++++++++++++++++FIN+++++++++++++++++++++++++++++++

el resultado, despues de elegir la opción '1' es este:

//////////////////////////COMIENZO//////////////////////////////
Ingrese Dato

Elija opcion
1. Cadena de char
2. Entero
3. XXX

4. Salir.1
Ingrese cadena:
El numero de DNI: "" es ahora el entero: 0


Elija opcion
1. Cadena de char
2. Entero
3. XXX
4. Salir
/////////////////////////////////FIN/////////////////////////////////

He puesto la función fflush justo antes de llamar a la función, y
nada... He modificado el código para ingresar el dato desde el main....y
me hace lo mismo... misterio... la verdad es que no encuentro donde está
el error...


-- 
oM

Omar G. Murray [Crux_]
esomy_m en yahoo.es
JID: Crux en jabber.freenet.de
http://mysteriouswaystg.blogspot.com
*********************************************
Powered by Debian Etch GNU-Linux - kernel 2.6.17-2-K7
&&
Powereb by Ubuntu Feisty Fawn 7.04 GNU-Linux - kernel 2.6.20-15




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