|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2011
Messaggi: 80
|
[C++]login
Devo realizzare una funzione che mi effettua una specie di login, nel senso, che io ho un file di testo fatto cosi:
USERNAME PASSWORD USERNAME1 PASSWORD1 il programma mi deve chiedere di inserire username e password, poi ci deve essere un controllo se i valori che ho inserito corrispondano a quelli presenti dentro al fine, nel senso che se io inserisco username e password, posso accedere a delle funzioni, mentre se inserisco username e password2 mi deve ritornare un errore del tipo, "Dati sbagliati, riprovare". So come si effettua una lettura di un file e una scrittura, mi potete dare una mano? Piu o meno mi viene in mente questo ma sara sbagliato di sicuro... Codice:
#include<iostream>
#include<fstream>
int main(){
fstream file;
file.open("nomefile.txt")
cout << "inserisci user: ";
cin >> user;
while(!file.eof()){
if(strcmp(user, qualcosa che non so))
return true;
else
return false;
}
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Codice:
// Leggi la riga USERNAME PASS
string line;
getline(file, line);
// Cerchi uno spazio nella linea
size_t index = line.find_first_of(" ");
// Se c'è, puoi ricavarti username e pass
// eventualmente puoi controllare che ce ne sia uno solo etc
if (index != string::npos)
{
string username = line.substr(0, index);
string password = line.substr(index + 1);
// ora puoi fare il controllo con l'input
}
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2011
Messaggi: 80
|
sinceramente non ho capito il tuo ragionamento
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
è la cosa più banale che puoi pensare: leggi la linea del file e la dividi nella parte prima dello spazio e in quella dopo, per avere user e pass letti dal file, poi vedi se è uguale a quello che hai inserito
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2011
Messaggi: 80
|
si quello lo avevo capito, ma non capisco il codice che hai scritto...
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
getline: legge una linea da uno stream find_first_of: trova la prima occorrenza di qualcosa string::npos: ultima posizione in una stringa substr: prende la sottostringa specificata |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:19.




















