17/11/07 22:12
ScorpionITA
devi crearti una funzione che tramite l'utilizzo di getch(); prenda il testo e stampi degli asterischi al posto delle lettere.
Se hai prob ti faccio un esempio
Se hai prob ti faccio un esempio
aaa
21/11/07 15:37
Fmasso91
Ho provato a usare getchar e putchar ma al massimo ottengo gli asterischi tra una lettera e l'altra.
Se puoi farmi un esempio te ne sarei molto grato.
Se puoi farmi un esempio te ne sarei molto grato.
aaa
21/11/07 15:38
Fmasso91
Ho provato a usare getchar e putchar ma al massimo ottengo gli asterischi tra una lettera e l'altra.
Se puoi farmi un esempio te ne sarei molto grato.
Se puoi farmi un esempio te ne sarei molto grato.
aaa
22/11/07 15:19
LuigiBiasi
credo chedovresti usare la putchar(8) prima di stampare il carattere *.
per cancellare il carattere.
Non ho testato il programma, non so se funziona.
Ciao.
putchar(8);
per cancellare il carattere.
Non ho testato il programma, non so se funziona.
Ciao.
aaa
23/11/07 20:39
ScorpionITA
ciao allora ecco il codice
il codice sopra non è mio, non ricordo dove l'ho trovato comunque è facile da comprendere.
se hai dubbi chiedi pure
void GetPassMask(int nMaxLenght, char *szBuffer, char cPasswordChar) { char cPw; int i = 0; do { /* Cattura il tasto premuto e lo memorizza in pw */ cPw = getch(); /* Se il numero di caratteri è minore di zero il numero dei caratteri è zero */ if (i < 0) i = 0; /* Se i è maggiore della lunghezza massima consentita allora i = lunghezza massima */ if (i > (nMaxLenght)) i = nMaxLenght; /* Se il tasto premuto NON è INVIO... */ if (cPw != '\r') { /* Se il tasto premuto è il backspace... */ if (cPw == '\b') { /* Se cPasswordChar è diverso da 0 cancella un'asterisco */ if(cPasswordChar != 0) if (i > 0) putch('\b'); putch(' '); putch('\b'); /* Decrementa i per non contare il carattere backspace */ i--; } else { /* Inserisce il carattere nel buffer e incrementa la lunghezza */ szBuffer[i++] = cPw; if (i <= nMaxLenght) if(cPasswordChar != 0) putch(cPasswordChar); } } /* Con la pressione di INVIO finisce l'inserimento della password */ } while (cPw != '\r'); /* Inserisce il NULL nell'ultima posizione di buffer per indicare la fine della stringa */ szBuffer[i] = 'ciao allora ecco il codice
void GetPassMask(int nMaxLenght, char *szBuffer, char cPasswordChar) { char cPw; int i = 0; do { /* Cattura il tasto premuto e lo memorizza in pw */ cPw = getch(); /* Se il numero di caratteri è minore di zero il numero dei caratteri è zero */ if (i < 0) i = 0; /* Se i è maggiore della lunghezza massima consentita allora i = lunghezza massima */ if (i > (nMaxLenght)) i = nMaxLenght; /* Se il tasto premuto NON è INVIO... */ if (cPw != '\r') { /* Se il tasto premuto è il backspace... */ if (cPw == '\b') { /* Se cPasswordChar è diverso da 0 cancella un'asterisco */ if(cPasswordChar != 0) if (i > 0) putch('\b'); putch(' '); putch('\b'); /* Decrementa i per non contare il carattere backspace */ i--; } else { /* Inserisce il carattere nel buffer e incrementa la lunghezza */ szBuffer[i++] = cPw; if (i <= nMaxLenght) if(cPasswordChar != 0) putch(cPasswordChar); } } /* Con la pressione di INVIO finisce l'inserimento della password */ } while (cPw != '\r'); /* Inserisce il NULL nell'ultima posizione di buffer per indicare la fine della stringa */ szBuffer[i] = '{parsed_message}'; }
il codice sopra non è mio, non ricordo dove l'ho trovato comunque è facile da comprendere.
se hai dubbi chiedi pure '; }
il codice sopra non è mio, non ricordo dove l'ho trovato comunque è facile da comprendere.
se hai dubbi chiedi pure
Ultima modifica effettuata da ScorpionITA 23/11/07 20:41
aaa