Hej, napisałem program, który wymaga podania poprawnego hasła, a w przypadku jego braku jest ono ustalane. Gdy podaję hasło zapisane w pliku, to wyskakuje, że jest błędne. Dlaczego tak się dzieje skoro napisy są identyczne?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void ustawHaslo (FILE *haslo)
{
char noweHaslo [100];
printf ("Brak ustawionego hasla.\nPodaj haslo: ");
scanf ("%s", noweHaslo);
haslo = fopen ("haslo.txt","w");
fprintf (haslo, "%s", noweHaslo);
fclose (haslo);
return;
}
void wprowadzHaslo (void)
{
FILE *haslo;
if ((haslo = fopen ("haslo.txt","r+")) == NULL) // gdy brak pliku
{
ustawHaslo (haslo);
haslo = fopen ("haslo.txt","r+");
}
char pierwszyZnak = fgetc (haslo);
if (pierwszyZnak == EOF) // gdy plik jest pusty
{
ustawHaslo (haslo);
haslo = fopen ("haslo.txt","r+");
}
else // wprowadzanie hasła i weryfikacja
{
char wprowadzoneHaslo [100];
char prawdziweHaslo [100];
fscanf (haslo, "%s", prawdziweHaslo);
fclose (haslo);
printf ("Wprowadz haslo: ");
do
{
scanf ("%s", wprowadzoneHaslo);
if (strcmp (wprowadzoneHaslo, prawdziweHaslo) == 0)
{
printf ("Poprawne haslo.\n");
return;
}
else printf ("Bledne haslo! Wprowadz ponownie: ");
}
while (1);
}
}
int main ()
{
printf ("\t\tBaza danych.\n\n");
wprowadzHaslo ();
return 0;
}