Próbuję stworzyć prosty system do rejestracji i logowania, który pobierałby dane rejestrującego się i zapisywał w pliku txt, tak żeby zalogowanie się było możliwe nawet po zamknięciu programu i ponownym uruchomieniu. Napisałem kod, ale najwyraźniej nie jest poprawny, program nie chce się uruchomić. Jestem ciekaw, czy to co napisałem ma wgl. jakiś sens, jeżeli nie, to chętnie przyjmę porady typu "co i jak zmienić" od jakichś mądrych głów.
KOD:
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <fstream>
using namespace std;
char decyzja;
string imie[100],login[100],haslo[100];
string imie0,login0,haslo0;
string login2,haslo2;
string linia;
int nr_linii=1;
int nr_danych=0;
int main()
{
for (;;)
{
cout << "<EKRAN STARTOWY>" << endl;
cout<<endl;
cout<<endl;
cout<<"LOGOWANIE -> WYBIERZ 1 REJESTRACJA -> WYBIERZ 2"<< endl;
decyzja=getch();
system("cls");
switch(decyzja)
{
case '1':
cout<<"<EKRAN LOGOWANIA>"<<endl;
cout<<endl;
cout<<"Login: ";
cin>> login2;
cout<<endl;
cout<<"Haslo: ";
cin>>haslo2;
fstream plik;
plik.open("danelogowania.txt");
while (getline(plik,linia))
{
switch(nr_linii)
{
case 1: imie[nr_danych]=linia; break;
case 2: login[nr_danych]=linia; break;
case 3: haslo[nr_danych] = linia; break;
}
if (((login[nr_danych]!=login2) || (haslo[nr_danych]!= haslo2))&& (nr_linii==3) )
{
nr_linii=0;
nr_danych++;
}
else if ((login[nr_danych]==login2) && (haslo[nr_danych]== haslo2) )
{
system("cls");
cout<<"ZALOGOWANO"<<endl;
cout<<endl;
cout<<"WITAJ: "<<imie[nr_danych]<<endl;
getch();
system("cls");
}
else
{
system("cls");
cout<<"NIEPOPRAWNY LOGIN LUB HASLO";
getch();
system("cls");
}
nr_linii++;
}
plik.close();
break;
case'2':
cout<<"<EKRAN REJESTRACJI>"<<endl;
cout<<endl; cout<<endl;
cout<<"Imie: ";
cin>>imie0;
cout<<endl;
cout<<"Login: ";
cin>>login0;
cout<<endl;
cout<<"Haslo: ";
cin>>haslo0;
cout<<endl;
cout<<"ZAREJESTROWANO!";
getch();
system("cls");
fstream plik;
plik.open("danelogowania.txt", ios :: out, ios :: app);
plik<<imie0<<endl;
plik<<login0<<endl;
plik<<haslo0<<endl;
plik.close();
break;
}
}
return 0;
}