Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: vidalpet en 30 Agosto 2015, 22:58 pm



Título: Ayuda con este Programa Help me [Quiero aprender]
Publicado por: vidalpet en 30 Agosto 2015, 22:58 pm
El que este abajo es el codigo de mi cajero , necesito validarlo es decir que no me lo exploten , no he podido y llevo 2 horas ,
hice este mini cajero basico soy nuevo en el lenguaje C , necesito saber como valido las entrada es decir que el usuario no marque caracteres donde van numero .

hice este ajercicio con esto pero no funciono
Código
  1.    #include <stdio.h>
  2.    #include <stdlib.h>
  3.  
  4.    int main() {
  5.  
  6.        char sNum[20];
  7.        int num;
  8.  
  9.        printf("Ingrese numero\n");
  10.        scanf("%s",sNum);
  11.        num=atoi(sNum); /* atoi convierte el numero ingresado como cadena en entero
  12.         en caso de ser posible, de lo contrario retorna 0*/
  13.  
  14.        if(num!=0)
  15.            printf("El numero es: %d\n",num);
  16.        else
  17.            printf("No es un numero\n");
  18.  
  19.        return 0;
  20.  
  21.    }
  22.  

intente utilizar este codigo en mi    CAJERO  pero no funciono porfavor ,

otra pregunta donde puedo   ENCONTRAR EJERCICIO YA HECHOS ASI APRENDO MAS

gracias

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int  x ;
  6. float saldo =5000, retiro=0 , deposito=0;
  7. int contra=2015;
  8. printf("\t\t\tcajero automatico\n");
  9. printf("\t\t teclee su contraseña señor\n");
  10.  
  11. do{
  12. scanf("%d",&contra);
  13.  
  14. if (contra!=2015)
  15.  
  16. printf("marque su clave correcta\n");
  17.  
  18. }while (contra!=2015);
  19.  
  20. printf("1-mostrar\n");
  21. printf("2-retiro\n");
  22. printf("3-deposito\n");
  23. scanf("%d",&x);
  24. switch (x){
  25. case 1:
  26. printf("su saldo es %.1f",saldo);
  27. break;
  28.  
  29. case 2:
  30. printf("cuanto desea retirar?\n");
  31. scanf("%f",&retiro);
  32. printf("usted acaba de retirar%.1f\n",retiro);
  33. printf("su saldo actual%.2f dolares",saldo-retiro);
  34. break;
  35.  
  36. case 3 :
  37. printf("cuanto desea depositar\n");
  38. scanf("%f",&deposito);
  39.  
  40. printf("su deposito  es de %.1f dolares", deposito+saldo);
  41. break;
  42.  
  43. default :
  44. printf("opcion INVALIDA\n");
  45. break;
  46.  
  47. }
  48. return 0;
  49. }
  50.  
  51.  
  52.  

disculpen aun no he usado toda las funcionalidades del foro y pense que habia copiado este es el cajero


Título: Re: Ayuda con este Programa [Quiero aprender]
Publicado por: ivancea96 en 30 Agosto 2015, 23:12 pm
¿Qué problema te dió ese código? ¿Por qué no funcionó?


Título: Re: Ayuda con este Programa [Quiero aprender]
Publicado por: snake_linux en 30 Agosto 2015, 23:13 pm
El programa que has puesto compila y funciona perfectamente, creo que te refieres a como "forzar" al usuario a tipear un número y no una letra, si es así, siento decirte que no se puede, solo se puede hacer lo que has hecho tu, comprobar si es un número y en caso negativo dar un error.

Saludos.


Título: Re: Ayuda con este Programa Help me [Quiero aprender]
Publicado por: furciorifa en 7 Septiembre 2015, 00:02 am
Revisé tu código y corrio a la perfección, si te refieres a forzar al usuario a que introduzca números solamente puedes usar un puntero y revisar caracter por caracter, y si alguno no es número no hacer nada y pedirle sólo números.