Citat:
k4rl0: Ma bravo majstore,fala,sve ok..
Samo sam stavil da poziva main funkciju ako su pogresni lozinka ili user name(na taj nacin sam izaso iz for petlje i
omogucio unos isponova i lozinke i user namea..)
Hvala na zivcima,pozdrav.. :)
Drago mi je da sam ti pomogao :)
To ti nije dobro resenje da pozivas ponovo main funkciju, a mislim da ne bi radilo u svaku situaciju. Pravo resenje ti je da malo ranije zatvoris for loop.
Evo ovako malo sam ti sredio celi kod, nema potrebe da podatke o bankovnim racunima cuvas u dva formata strin i int, dovoljan ti je samo string. Izgleda da si prethodno programirao u Pascal-u, u C++ se ne praktikuje da se promenlive deklariraju na pocetak programa nego kad ti zatrebaju.
Code:
#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
#include<vector>
using namespace std;
int main()
{
ifstream koristxt("C:\\Documents and Settings\\user\\My Documents\\korisnici.txt");
ifstream stantxt("C:\\Documents and Settings\\user\\My Documents\\stanjebankomata.txt");
ifstream loztxt("C:\\Documents and Settings\\user\\My Documents\\lozinke.txt");
string buff;
vector<string> korisnici;
while(getline(koristxt, buff))
korisnici.push_back(buff);
vector<string> lozinke; //lozinke cuvas kao string
while(getline(loztxt, buff))
lozinke.push_back(buff);
int stanje; //stanje ti je int nema potrebe od string
stantxt >> stanje; //direktno citas int iz fajla
int counter = 0;
size_t poz = 0;
string korisnik, lozinka;
while(true) {
system("CLS");
cout << "Dobro dosli na bankomat!" << endl;
cout << "Unesite korisnicko ime:" << endl;
getline(cin, korisnik);
for(size_t i = 0; i < korisnici.size(); i++) {
if(korisnik == korisnici[i]) {
counter++;
poz = i;
}
} //ovde si trebao zatvoriti for loop
cout << "Unesite PIN:" << endl;
cin >> lozinka;
cin.ignore();
if((lozinka == lozinke[poz]) && (counter != 0)) {
cout << "Uspjesno ste se logirali na bankovni racun." << endl;
break;
}
else
cout << "Korisnicko ime ili PIN su pogresni,pokusajte ponovo.\n\n";
cout << "Odaberite jednu od slijedecih opcija:\n" << endl;
}
system("PAUSE");
return 0;
}
Ako zelis da ti lozinka (PIN) budu int. Onda za ucitavanje koristi.
Code:
vector<int> lozinke; //lozinke cuvas kao string
int l;
while(loztxt >> l)
lozinke.push_back(l);
Najbolje resenje bi ti bilo da koristis map<string, string> ili map<string, int> za cuvanje racuna.
Code:
map<string, int> racuni; //gde ces cuvati i korisnike i lozinke