Controllo user e password da file di testo separati da spazio

di Anonimizzato23966 il
2 risposte
In questo programma dovrei controllare username e password scritti da un file di testo separati da spazio e dovrebbe esserci una combinazione per ogni rigo, usando il while in getline(fin,user) mi legge riga per riga come giusto che sia ma se scrivo per esempio nel file .dat una combinazione nella prima riga e un'altra nella seconda, andando ad avviare il programma e scrivendo per esempio la 2 combinazione mi dice accesso negato e se lo riscrivo una seconda volta accesso consentito. Come faccio a farglieli leggere e poi confrontarli dando direttamente l'output giusto?
Spero di essermi spiegato.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
int i=4;
string user,password,verif;
ifstream fin ("user.dat");
if(!fin){
cout<<"Errore nell'apertura del file! ";
}
do{
getline(fin,user);
cout<<"Inserisci username e password: "<<endl;
getline(cin,verif);

if(verif==user){
cout<<"Accesso consentito.";
}else{
cout<<"Accesso negato. Hai ancora" " "<<i-1<<" " "possibilita' "<<endl;
i--;
}
if(i==0){
cout<<"ACCOUNT BLOCCATO! "<<endl;
goto end;
}

}while(user!=verif);

end:
return 0;
}

2 Risposte

  • Non ho capito molto ...
  • Devi confrontare l'input con tutte le righe del file e se trovi ALMENO UNA corrispondenza allora la password è giusta.
    Per farlo puoi leggere ad ogni tentativo l'INTERO file oppure salvare tutte le righe in un vettore e poi usare quello.


    con il tuo codice all'i-esimo tentativo confronti l'input solo con l'i-esima riga del file (dato che ne leggi una alla volta)
Devi accedere o registrarti per scrivere nel forum
2 risposte