Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con la richiesta password...
Forum - C/C++ - Problema con la richiesta password...

Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 10:33
Venerdì, 16/11/2007
Ragazzi ciao a tutti! E' da un mesetto che mi sono registrato in questo forum (davvero fantastico!), ma questa è la prima volta che scrivo un topic!:)
Sono uno studente di Ingegneria Informatica alle prime armi con la programmazione in C++, e siccome avevo un problema (solo uno?!8-|) volevo esporlo a voi: vorrei creare un semplice programma che mi chiede di inserire una password; se la psw è corretta , il programma continua la sua esecuzione altrimenti si deve interrompere (solo dopo però 3 tentativi di richiesta psw, come nei cellulari) ed uscire istantaneamente (magari con un messaggio di errore).
Spero di essere stato chiaro nella terminologia, ma sono ancora un novellino! ;)
Ringrazio in anticipo chi mi aiuterà in questa ardua impresa (per me naturalmente, per voi sarà una passeggiata!:asd:)
Ciao a tutti!

Ultima modifica effettuata da Navar il 16/11/2007 alle 10:56
PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 10:43
Venerdì, 16/11/2007
Codice sorgente - presumibilmente C++

  1. main() {
  2. char Pass[10];
  3. int Counter = 0;
  4.  
  5. //Qui comincia il ciclo e la struttura selettiva
  6. for(Counter = 1; Counter < 3; Counter++) {
  7.  cout << "Inserisci la password: ";
  8.  gets(Pass);
  9.  if(pass != (pass che hai scelto)) {
  10.    cout << "Password errata";
  11.  }
  12.  else break;
  13.  }
  14.  
  15. return 0;
  16. }



La prossima volta metti un titolo più significativo e prima di lasciare il problema ad altri, posta il lavoro che hai fatto per avere eventuali correzioni e/o consigli.
Qui risolviamo i problemi, non sforniamo programmi a richiesta.

PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 10:52
Venerdì, 16/11/2007
Testo quotato

Postato originariamente da WARRIOR:

Codice sorgente - presumibilmente C++

  1. main() {
  2. char Pass[10];
  3. int Counter = 0;
  4.  
  5. //Qui comincia il ciclo e la struttura selettiva
  6. for(Counter = 1; Counter < 3; Counter++) {
  7.  cout << "Inserisci la password: ";
  8.  gets(Pass);
  9.  if(pass != (pass che hai scelto)) {
  10.    cout << "Password errata";
  11.  }
  12.  else break;
  13.  }
  14.  
  15. return 0;
  16. }



La prossima volta metti un titolo più significativo e prima di lasciare il problema ad altri, posta il lavoro che hai fatto per avere eventuali correzioni e/o consigli.
Qui risolviamo i problemi, non sforniamo programmi a richiesta.



Scusami hai ragione, ma essendo nuovo del forum non sapevo bene cosa fare (non succederà più..)!Comunque, questo era il lavoro che avevo fatto io:

#include<iostream>
using std::cin;
using std::cout;
using std::endl;
  
int main(){
    int id;
    cout<<"Prego inserire ID utente...\n"<<endl;
    cin>>id;
    if (id==XXXXX) cout<<"Bentornato NOME UTENTE!Ecco la lista delle tue password:\n"<<endl;
    else cout<<"Spiacente,ID utente non riconosciuto...\a\n";  
    system ("pause");
    return (0);
}

Solo che in questo modo, una volta inserita la psw errata non capivo come fare "terminare" il programma! Comunque adesso provo il lavoro che mi hai suggerito tu e ti faccio sapere..grazie in anticipo dell'aiuto e scusami ancora!

Ultima modifica effettuata da Navar il 16/11/2007 alle 10:54
PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 10:57
Venerdì, 16/11/2007
Regolamento :k:.

PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 11:42
Venerdì, 16/11/2007
Allora Warrior, ho provato ad implementare il codice che tu mi hai fornito nel lavoro che ho postato precedentemente (in altre parole ho sostituito il tuo "main" al mio!), ma mi da errori di compilazione (premessa: uso il Dev-C++ come compilatore!)... allora ho provato a modificarlo un tantino, e cosi' mi funziona:

#include<iostream>
using std::cin;
using std::cout;
using std::endl;

int main(){
    int pass; // sono passato da "char" a "int"                          
    perchè mi interessava una psw numerica;
    int Counter = 0;

// il primo "Counter" l'ho inizializzato a "0" così da chiedermi 3 volte "Inserire psw:";                                              
for(Counter = 0; Counter < 3; Counter++) {  
cout << "Inserisci la password: " << endl;  
cin >> pass;
if(pass!=1234){
cout << "Password errata" << endl;
}
else break;
}
system ("pause");
return 0;
}

Solo che quando inserisco una psw sbagliata, è vero che mi chiede per 3 volte di re-inserirla ma non mi da la possibilità "fisica" di poterlo fare (prova tu: capirai cosa intendo!)Puoi indicarmi, ed eventualmente suggerirmi:d, dove sbaglio?
Ti ringrazio in anticipo, e scusami del tempo che ti tolgo 8-| !

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 13:23
Venerdì, 16/11/2007
No problem :k:.
Ho provato il codice e funziona a dovere. ;)
Dimmi cosa ti succede così vedo di trovare la possibile causa. :k:

PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 18:31
Venerdì, 16/11/2007
Eccomi di nuovo qui Warrior!Scusami se ti rispondo solo adesso!Comunque,il problema che riscontro è il seguente:

#include<iostream>
using std::cin;
using std::cout;
using std::endl;

int main(){
           int pass;
           int Counter=0;
           for(Counter=0; Counter<3; Counter++) {
           cout<<"Inserire ID utente,prego...:\n"<<endl;
           cin>>pass;
           for(int x=0; x<5; x++){
           cout << "\n...controllo ID in corso, attendere prego...";
           _sleep(1000);
           }
           if(pass!=1234){
           cout<<"\nUtente non riconosciuto...\n"<<endl;
           }
           else break;
           }
          
           cout<<"\nBenvenuto UTENTE ! Ecco una lista di password utili!:\n"<<endl;
           int scelta;
           cout<<"1)Password MSN:\n"<<endl;
           cout<<"2)Password Katamail:\n"<<endl;
           cout<<"3)Password Libero:\n"<<endl;
           cin>>scelta;
          
           if (scelta=1) cout<<"\nPassword MSN:'123'\n"<<endl;
           else if (scelta=2) cout<<"\nPassword Katamail:'456'\n"<<endl;
           else if (scelta=3) cout<<"\nPassword Libero:'789'\n"<<endl;
           else cout<<"\nTasto non riconosciuto...provare di nuovo;\n"<<endl;
           system ("pause");
           return 0;
           }

Il blocco di codice che tu mi hai dato, funziona a dovere!   :k:
Il problema è che in qualsiasi caso io metta la psw (sia corretta che errata), si accede comunque alla seconda parte del programma (quella della lista di psw) mentre in teoria (:-|) non dovrebbe!
In secondo luogo, non capisco perchè quando mi chiede di inserire un numero associato alla lista (1,2,3), se metto un numero > 3 o una lettera dell'alfabeto mi restituisce comunque la psw di msn...ma come mai?:d
Che abbia utilizzato male il ciclo "if"?8-|
Per favore se puoi, e con i tuoi tempi;), aiutami a risolvere questo problema! Ti ringrazio come sempre!:k:

PM Quote