Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ankora45 en 16 Octubre 2012, 14:52 pm



Título: contraseñas
Publicado por: ankora45 en 16 Octubre 2012, 14:52 pm
Hola intento hacer un sistema de contraseñas pero debido a mi poca experiencia en la programacion de c o c++ no detecto el error por el cual el compilador no me deja compilarlo ya que me tira un error
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <iostream>
  4.  
  5. void pass();
  6. void cp();
  7. char contra[20];
  8. FILE *fichero = fopen("contrasen.txt", "wt");
  9.  
  10. int main()
  11. {
  12. printf("1.crear conraseña\n");
  13. printf("2.comprobacion\n");
  14. switch(getchar())
  15. {
  16.  case '1': pass();
  17.  break;
  18.  case '2': cp();
  19.  break;
  20. }
  21. fclose(fichero);
  22. return 0;
  23. }
  24.  
  25.  
  26. void pass()
  27. {
  28. printf("Escribe una contra\n");
  29. std::cin>>contra;
  30. fputs(contra, fichero);
  31. main();
  32. }
  33.  
  34. void cp()
  35. {
  36. char *resultado;
  37. resultado = fgets(contra, 20, fichero);
  38. printf("introduzca la contra\n");
  39. if(getchar()==resultado)
  40. {
  41.  printf("correcto");
  42. }
  43. else
  44. {
  45.  printf("incorrecto");
  46. }
  47. }

ayudenme plz


Título: Re: contraseñas
Publicado por: 0xDani en 16 Octubre 2012, 15:40 pm
1.- La variable resultado no te hace falta, fgets te almacena el resultado en el primer parametro.
2.- En esta linea:
Código
  1. if(getchar()==resultado)

Intentas comparar un caracter que te devuelve getchar() con una cadena que es innecesaria, la puedes sustituir por contra. En C/C++ para comparar cadenas tienes la funcion strcmp(), en string.h/cstring.

Saludos.


Título: Re: contraseñas
Publicado por: Puntoinfinito en 17 Octubre 2012, 00:33 am
Sé que lo unico que voy a hacer va a ser poner otra duda más en cuestion xD

La parte de

FILE *fichero = fopen("contrasen.txt", "wt");

Lo que has echo es abrir para el programa "contrasen.txt" para que el puedo interaccionar en el, pero la pregunta es, hace falta indicar la ruta de "contrasen.txt"? Porque veo que tu no has puesto ninguna...

Saludos y espero respuesta:)

PD: Perdón por las molestias xD


Título: Re: contraseñas
Publicado por: 0xDani en 17 Octubre 2012, 12:09 pm
Sé que lo unico que voy a hacer va a ser poner otra duda más en cuestion xD

La parte de

FILE *fichero = fopen("contrasen.txt", "wt");

Lo que has echo es abrir para el programa "contrasen.txt" para que el puedo interaccionar en el, pero la pregunta es, hace falta indicar la ruta de "contrasen.txt"? Porque veo que tu no has puesto ninguna...

Saludos y espero respuesta:)

PD: Perdón por las molestias xD

Eso depende del sistema operativo, pero normalmente si no especificas ruta se supone que el archivo ha de estar en el mismo directorio que el ejecutable.

Saludos.


Título: Re: contraseñas
Publicado por: Puntoinfinito en 17 Octubre 2012, 18:37 pm
Eso depende del sistema operativo, pero normalmente si no especificas ruta se supone que el archivo ha de estar en el mismo directorio que el ejecutable.

Saludos.

Entendido :)
He probado en mi Linux y en un Windows y en los dos funcionan de maravilla, gracias por aclarar.