PDA

Visualizza la versione completa : [C++] Programma per la memorizzazione di password e interrogazione


andymark
16-01-2011, 16:39
Ciao a tutti, sto facendo un programma per memorizzare le varie password dei siti internet al quale sono iscritto.


#include<iostream>
#include<fstream.h>
#include<string.h>
#include<windows.h>
using namespace std;
int main ()
{
int i;
string pass, sito, user, password, sito1, r;
do{
system("cls");
cout << "Inserisci la password: ";
cin >> pass;
if(pass=="password") // se la password è corretta
{
do{
system("cls");
cout << "Cosa vuoi fare: \n\n1)Cercare password \n2)Aggiungere nuova password \n3)Uscire \n\nScelta: ";
cin >> i;
switch (i)
{
case 1:
break;
case 2:
system("cls");
ofstream f("password.txt",ios::app);
if(!f) {
cout<<"Errore nella creazione del file!";
return -1;
}
cout << "Inserisci il sito: ";
cin >> sito;
cout << "Inserisci lo username: ";
cin >> user;
cout << "Inserisci la password: ";
cin >> password;
f << sito << " " << user << " " << password << "\n";
f.close();
cout << "\nSCRITTURA AVVENUTA CON SUCCESSO\n\n";
system("pause");
cout << "\n\n";
break;
}
}while(i!=3);
}
else // se la password non è corretta
{
system("cls");
cout << "La password inserita non e' corretta... Ritenta";
Sleep(1000);
}
}while(pass!="password");
cout << "\n";
system("pause");
return 0;
}
Fino ad adesso sono riuscito a fargli creare il file nel caso non esistesse e a fare memorizzare nel txt che mi crea nome sito, username e password (come si vede nel CASE 2). Il problema sorge nel CASE 1 dove dovrei fare il caso in cui si voglia cercare la password nel txt. Volevo quindi chiedervi, facendo un cin nel quale memorizzo il nome del sito, a cercare nel file e a far scrivere quindi nel mio programma la password e lo username.
Grazie dell'aiuto

lolide
16-01-2011, 16:48
Originariamente inviato da andymark
Ciao a tutti, sto facendo un programma per memorizzare le varie password dei siti internet al quale sono iscritto.


#include<iostream>
#include<fstream.h>
#include<string.h>
#include<windows.h>
using namespace std;
int main ()
{
int i;
string pass, sito, user, password, sito1, r;
do{
system("cls");
cout << "Inserisci la password: ";
cin >> pass;
if(pass=="password") // se la password è corretta
{
...
}
....
}while(pass!="password");
cout << "\n";
system("pause");
return 0;
}

le comparazioni tra stringhe non si fanno così: in quel modo tu compari gli indirizzi dei puntatori, non il contenuto.
Per farlo devi usare la funzione strcmp() (http://www.cplusplus.com/reference/clibrary/cstring/strcmp/)

Per le altre cose, leggi IO con i file in C (http://www.cprogramming.com/tutorial/cfileio.html)

andymark
16-01-2011, 17:02
grazie dei suggerimenti, ora ci guardo. Per gli errori non conoscevo strcmp dato che ho iniziato a fare il c++ a scuola diciamo da un mese e mezzo quindi non siamo ancora arrivati a quelle cse. Ma io voglio portarmi avanti xd.

andymark
16-01-2011, 17:13
ho guardato e sono riuscito a sistemare il strcmp ma non riesco a capire quello per cercare una parola in un txt

Alex'87
16-01-2011, 18:10
Originariamente inviato da lolide
le comparazioni tra stringhe non si fanno così: in quel modo tu compari gli indirizzi dei puntatori, non il contenuto.
Per farlo devi usare la funzione strcmp() (http://www.cplusplus.com/reference/clibrary/cstring/strcmp/)

Per le altre cose, leggi IO con i file in C (http://www.cprogramming.com/tutorial/cfileio.html) Lui sta usando C++ e oggetti string e la funzione strcmp() funziona solo con array di char. Perché fargli usare pezzi di C in un programma C++?

Ad ogni modo string ha il metodo compare(), può usare quello.

E comunque la classe string ridefinisce l'operatore ==, pertanto confrontare due stringhe con stringa1 == stringa2 è corretto.
http://msdn.microsoft.com/en-us/library/e4abh74z(v=vs.80).aspx

andymark
16-01-2011, 18:16
grazie mille dell'aiuto per prima cosa. Riusciresti anche a darmi qualche suggerimento per il fatto di leggere il txt? Grazie

ShaleN
16-01-2011, 18:25
Basta chiedere a zio Google. (http://www.google.it/search?hl=it&client=firefox-a&hs=jUB&rls=org.mozilla%3Ait%3Aofficial&channel=s&q=Input+Output+su+file+C%2B%2B&aq=f&aqi=&aql=&oq=)

andymark
16-01-2011, 18:56
anche guardando i risultato della ricerca non ho capito. Quello che mi è proprio oscuro più di tutto è come cercare nella riga il nome del sito internet

andymark
17-01-2011, 21:21
up

Loading