• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Release Password Generator

System32

Utente Stellare
Autore del topic
2 Gennaio 2010
15.556
112
Miglior risposta
0
Pagina del compilatore aperta, nuovo progetto creato, che fare ? Ma sì, un bel programma, un Password Generator. So che mai nessuno lo utilizzerà, ma per me è un esercizio, ma per voi potrebbe essere un buon modo per apprendere quella parte di codice del programma che non conoscete. Non sapevo che programmi fare, ma dal momento che in C non lo ha mai creato e/o postato nessuno, ho deciso di farlo io. E a dir la verità non mi è venuto per niente difficile, anzi, ci ho messo tanto tempo ( questione di ragionamento non di codice ), ma alla fine ne sono rimasto soddisfatto. Tutto dipende dall'array di lettere, numeri e caratteri speciali, il resto è banale.

Ecco il source :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Se non capite qualcosa chiedete, perchè a scrivere i commenti e poi postarlo su Sciax non si capirebbe nulla.
 
Ultima modifica:
Ho provato a compilare il codice, ma Dev-C++ mi segnala un errore..

C:\Users\Andrea\Desktop\Password Generator.cpp In function `int main()':
8 C:\Users\Andrea\Desktop\Password Generator.cpp initializer-string for array of chars is too long
8 C:\Users\Andrea\Desktop\Password Generator.cpp initializer-string for array of chars is too long
67 C:\Users\Andrea\Desktop\Password Generator.cpp `sleep' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
 
La riga 8 è solo un avvertimento, non è un errore. Nella stringa 67 significa che non hai la libreria windows.h, perchè la funzione sleep() è inclusa in quella libreria.
 
System32 per te è inutile ma per me no :emoji_relieved:

Mi è capitato tante volte di "inventare" una nuova password :soso:
 
Come faccio a mettere la libreria windows.h ?
Io ho copiato il codice, #include windows.h comrpeso.. Che faccio?
 
System32 per te è inutile ma per me no :emoji_relieved:

Mi è capitato tante volte di "inventare" una nuova password :soso:

Sì, ma un conto è inventare una password ricordandosela, un conto è inventarla a caso ( cioè come fa il programma )

@Akylle : Scarica la libreria da Google, e mettila in C:\Dev-Cpp\include
 
Grande system xD


Ps.Commenta il codice...l'unica istruzione che conosco è "Printf(":emoji_relieved:");"
 
Grande system xD


Ps.Commenta il codice...l'unica istruzione che conosco è "Printf(":emoji_relieved:");"

TU SEI PAZZO !

Ho detto che non ho commentato il codice perchè il tag CODE ne limita la grandezza del codice, e sarebbe stato un casino a scriverlo. Dimmi cosa non hai capito, riga per riga, e te la commento.
 
Adesso ti elenco la spiegazione delle source :

- Dichiaro come integer le prime variabili
- Dichiaro l'array alfanumerico come char ( carattere ) e metto tutti i caratteri/numeri/caratteri speciali dentro parentesi graffe
- Stampo a schermo quelle 5 scelte che farà l'utente
- Faccio scegliere la variabile "op" ( che sarebbe il numero da 1 a 5 in base a quello che sceglie l'utente )
- Inizia il costrutto "Swtich-case" sulla scelta di "op"
- Nel caso 1 se la scelta è "1" allora gli faccio scrivere la password corrispondende alla scelta 1 dell'utente ( cioè la prima printf(""); ), solo numeri

Etc...La stessa cosa finchè non arriva al caso 5, in base alla scelta dell'utente, avviene un ciclo for nel quale se la variabile i in questione è minore di 0 ma nello stesso tempo minore di l aumenta di conseguenza il valore di i, e con l'istruzione rand()%52 genera o i numeri, o i caratteri speciali, o le lettere ( in base alla scelta dell'utente ). Se la scelta di "op" non rientra tra le opzioni ( cioè i printf(""); ), allora viene fuori il messaggio di errore "Hai scritto un numero errato, stai per uscire dal programma..."

Tutto chiaro ?
 
  • Like
Reactions: 1 person
Potresti includere che se l'utente inserisce un numero non elencato gli viene riproposto di riscrivere nuovamente il numero.
Qualcosa come:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Una cosa del genere. Spero di essermi spiegato.

Noto che il random è quasi uguale sia nel c sia nel c#.
 
°_° Bell'idea...vorrei sapere come si fa...xD


Ps. A che serve il "break;?"
 
°_° Bell'idea...vorrei sapere come si fa...xD


Ps. A che serve il "break;?"

Basta mettere goto riprova; e prima di tutto il codice mettere : riprova:

Lo inserisco nel sorgente, così capite meglio.

Ps : Il break; serve per far finire l'istruzione che sta sopra, in modo che non continui a leggere il programma. E' tipico del costrutto Swtich-Case
 
Come una specie di "Exit sub" in vb.net? xD


Edit: Invece di GOTO si può mettere: "Return main();"? ^^
 
Ultima modifica:
Come una specie di "Exit sub" in vb.net? xD


Edit: Invece di GOTO si può mettere: "Return main();"? ^^

L'istruzione Exit Sub del VB.NET esce dall'istruzione che la precede, il goto invece significa letteralmente vai a, e quindi ritorna ad una parte di codice del programma ( senza interrompere la normale esecuzione del programma ).

Il return main(); è come il return 0;, solo che per questione di "velocità di codice" si usa il secondo.
 
NON HAI CAPITO...
Il break; serve per far finire l'istruzione che sta sopra, in modo che non continui a leggere il programma. E' tipico del costrutto Swtich-Case

AD esempio: IF textbox2.text="Ciao" then
msgbox("CIAO")
Exit sub
else
ecc....


Il break funziona come un exit sub?

Cioè: esegui il codice che sta sopra, ma appena arrivi al break; non esegue il resto...giusto? ^^
 
NON HAI CAPITO...


AD esempio: IF textbox2.text="Ciao" then
msgbox("CIAO")
Exit sub
else
ecc....


Il break funziona come un exit sub?

Cioè: esegui il codice che sta sopra, ma appena arrivi al break; non esegue il resto...giusto? ^^

Ho capito perfettamente, e tu hai ripetutto la cosa che ho detto io ::emoji_relieved: Comunque sia, sì è giusto.