contraseñas

Iniciado por ankora45, 16 Octubre 2012, 14:52 PM

0 Miembros y 1 Visitante están viendo este tema.

ankora45

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 (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>
#include <iostream>

void pass();
void cp();
char contra[20];
FILE *fichero = fopen("contrasen.txt", "wt");

int main()
{
printf("1.crear conraseña\n");
printf("2.comprobacion\n");
switch(getchar())
{
  case '1': pass();
  break;
  case '2': cp();
  break;
}
fclose(fichero);
return 0;
}


void pass()
{
printf("Escribe una contra\n");
std::cin>>contra;
fputs(contra, fichero);
main();
}

void cp()
{
char *resultado;
resultado = fgets(contra, 20, fichero);
printf("introduzca la contra\n");
if(getchar()==resultado)
{
  printf("correcto");
}
else
{
  printf("incorrecto");
}
}


ayudenme plz
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro

0xDani

1.- La variable resultado no te hace falta, fgets te almacena el resultado en el primer parametro.
2.- En esta linea:
Código (cpp) [Seleccionar]
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.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Puntoinfinito

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
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

0xDani

Cita de: 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

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.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Puntoinfinito

Cita de: 0xDani en 17 Octubre 2012, 12:09 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.
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.