|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2007
Città: cazzi tuoi se poi mi trovi F1: attento tifo McLaren! Pericolo: ... dicono che se mi beccano mi tagliano la cresta.. Stato: he was a boy, she was a girl... can I make it anymore obvious?
Messaggi: 755
|
[C]password in un prog...
ciao a tutti...ho due piccole domande da farvi:
1.nel codice che ho messo sotto per andare avanti devi mettere una password numerica....vorrei mettere dei caratteri invece di numeri....magari meglio ancora se escono degli asterischi per coprire quello che si scrive 2. visto che il programma calcola la media vorrei poter inserire numeri con la virgola.. Codice:
#include <stdio.h>
#include <process.h>
#define M 8
main()
{
int i, ma, x[M], s, p;
system("CLS");
printf("******************************************************\n");
printf("* Produced by MATURO e Co. All Rights Reserved *\n");
printf("******************************************************\n");
printf("Inserisci la password: ");
scanf("%d", &p);
if(p==1)
{
printf("Inserisci i numeri:\n");
for(i=1; i<=M; i++)
{
scanf("%d", &x[i]);
}
s=0;
for(i=1; i<=M; i++)
{
s=s+x[i];
}
ma=s/M;
printf("la media aritmetica è: %d\n", ma);
system("PAUSE");
}
else
{
printf("Password errata: ACCESSO NEGATO!!!\n");
system("PAUSE");
}
}
grazie per l'aiuto a chiunque risponderà |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Mar 2007
Messaggi: 6
|
non so come aiutarti
Ultima modifica di Mr. Htech : 23-03-2007 alle 18:58. |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Oct 2006
Messaggi: 170
|
Ciao, per usare una password con caretteri, pressuppongo piu di 1, devi creare per forza un vettore di char, e quindi fare una stringa, poi nell'inserimento della password da parte dell'utente confronti in parellelo con l'array creato e inizializzato con la password i caratteri che inserisce lui e se corrispondono alla fine dai l'ok.
Oppure quello che inserisce la password andrà a riempire con l'inserimento un altro vettore di char e poi confronti i 2 vettori. |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Oct 2006
Messaggi: 170
|
Per i numeri con la virgola nn devi fare altro che dichiarare le variabile di inserimento dei valori e quella della media non integer ma float e quindi nn usare %d, ma %f.
|
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Mar 2007
Messaggi: 6
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2007
Città: cazzi tuoi se poi mi trovi F1: attento tifo McLaren! Pericolo: ... dicono che se mi beccano mi tagliano la cresta.. Stato: he was a boy, she was a girl... can I make it anymore obvious?
Messaggi: 755
|
Quote:
per il fatto dei numeri con virgola tutto ok |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Usa la getch()
Questa funzione legge il primo carattere dal buffer della tastiera. Quindi (ipotizzando che all'invio la password sia stata inserita) fai una cosa simile a questa Codice:
do{
carattere=getch();
printf("*");
}
while(carattere!='\n');
Se ti serve basta che metti un if per i tasti che vuoi abilitare e poi li gestisci come piace a te.
__________________
|
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
io addirittura eviterei gli asterischi: potrebbero lasciar dedurre il numero di caratteri che formano la password.
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 141
|
Giusto, ma ricordati che la getch() non è una funzione di nessuno standard anche se di solito viene introdotta come estensione (includendo conio.h)
Saluti
__________________
HardwareStation.net Overclockers Team ------------------------------------------------ www.GilVegliach.eu Internet, Informatica, Tecnologia |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Mar 2007
Città: cazzi tuoi se poi mi trovi F1: attento tifo McLaren! Pericolo: ... dicono che se mi beccano mi tagliano la cresta.. Stato: he was a boy, she was a girl... can I make it anymore obvious?
Messaggi: 755
|
ragazzi grazie a tutti per le risposte e scusate se vi rompo cosi tanto...ma potete spiegarmi dove sbaglio
???ho buttato giu sta roba ma non so se va tanto bene... se eventualmente potete corregere l'errore (o errori) ve ne sarei grato.. Codice:
#include <stdio.h>
#include <conio.h>
#include <process.h>
#define M 8
main()
{
int p;
float x[M], ma, s, i;
char car;
char gianluca;
char password[20];
system("CLS");
printf("*******************************************************\n");
printf("* Produced by MATURO GIANLUCA All Rights Reserved *\n");
printf("*******************************************************\n");
printf("Inserisci la password: ");
for(p=0; p<20; p++)
{
car=getch();
printf("*");
password[p]=car;
if(car==gianluca)
{
printf("Inserisci i voti della tua pagella:\n");
for(i=1; i<=M; i++)
{
scanf("%f", &x[i]);
}
s=0;
for(i=1; i<=M; i++)
{
s=s+x[i];
}
ma=s/M;
printf("La tua media scolastica è: %2.2f\n", ma);
system("PAUSE");
}
else
{
printf("Password errata: ACCESSO NEGATO!!!\n");
system("PAUSE");
}
}
}
|
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non hai inizializzato gianluca... ma la password è composta da un solo carattere?
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2007
Città: cazzi tuoi se poi mi trovi F1: attento tifo McLaren! Pericolo: ... dicono che se mi beccano mi tagliano la cresta.. Stato: he was a boy, she was a girl... can I make it anymore obvious?
Messaggi: 755
|
|
|
|
|
|
|
#13 |
|
Bannato
Iscritto dal: Mar 2007
Messaggi: 6
|
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Quote:
Codice:
if(car==gianluca) Codice:
if(strcmp(password,"gianluca")==0) http://www.cplusplus.com/reference/c...ng/strcmp.html Nota che password dovrebbe essere una stringa, quindi deve essere terminata con '\0' quindi io sostiutuirei Codice:
for(p=0; p<20; p++)
{
car=getch();
printf("*");
password[p]=car;
//qui mi pare che manchi una parentesi chiusa
Codice:
i=0;
do{
password[i]=getch();
printf("*");
i++;
}
while(carattere!='\n')
password[i-1]='\0'//Sostituisco 1n con \0
Un ultimo consiglio, per vedere se il suo programma funziona la cosa più semplice è armarsi di compliatore e debugger e fare qualche test, in modo da vedere cosa funziona e cosa non funziona
__________________
|
|
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ti riscrivo una mia versione di programma C che prende una password:
Codice:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define PASSWORD_MAX_LENGTH 20
char *ActualPassword = "gianluca";
int main(void) {
char UserPassword[PASSWORD_MAX_LENGTH + 1];
int Index;
printf("Inserire la password (max. 20 caratteri):");
for (Index = 0; Index < 20; Index++) {
int Character = getch();
if ('\r' == Character) {
break;
}
UserPassword[Index] = Character;
}
UserPassword[Index] = 0;
printf("\n");
if (0 != strcmp(UserPassword, ActualPassword)) {
printf("Password errata\n");
return 1;
}
printf("Password corretta\n");
/* resto del programma... */
return 0;
}
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Mar 2007
Città: cazzi tuoi se poi mi trovi F1: attento tifo McLaren! Pericolo: ... dicono che se mi beccano mi tagliano la cresta.. Stato: he was a boy, she was a girl... can I make it anymore obvious?
Messaggi: 755
|
Quote:
naturalmente grazie mille anche a wisher per l'aiuto dato |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:50.




















