PDA

Visualizza la versione completa : [C] Leggere stringa mascherata


devil89
15-05-2006, 18:16
Vorrei sapere come poter leggere una stringa e non far vedere i caratteri inseriti.

Esempio:
__________________________________________________ ______________________

Inserisci codice attivazione: l'utente inserisce i caratteri ,
ma devono comprarire con gli asterischi.

devil89
15-05-2006, 20:31
Qualcuno pu˛ aiutarmi?

oregon
15-05-2006, 20:34
Dato che la risposta si differenzia secondo il contesto in cui operi, devi descriverlo ...

L'applicazione e' in modalita' console? Win32 in una textbox? Linux? Con supporto per la grafica/finestre?

devil89
15-05-2006, 20:37
Per il momento mi interessa saperlo per modalitÓ dos, da prompt.

oregon
15-05-2006, 20:47
Scrivi qualche riga di codice per effettuare l'input di un singolo carattere con la getch e visualizzare un asterisco ... Per intenderci, qualcosa di simile



char pwd[20];
int ix=0;

printf("Pwd: ");
while((ix<20) && ((pwd[ix++]=getch())!=13)) printf("*");

pwd[ix-1]=0;

printf("\n%s\n", pwd);

devil89
15-05-2006, 20:56
Non ho capito la condizione booleana che il carattere letto con getch() sia diverso da 13.

PerchŔ 13?
E poi, perchŔ nell'ultima posizione della stringa viene messo lo 0? E' l'equivalente del terminatore?

oregon
15-05-2006, 20:57
Come saprai il 13 e' il codice del tasto return. Questo viene inserito nella stringa ma sostituito dal terminatore.

devil89
15-05-2006, 21:00
Un ultima domanda:
che differenza c'Ŕ tra la lettura di una carattere con scanf("%c", pwd) e getch()?

oregon
15-05-2006, 21:05
Con la scanf hai l'eco dei caratteri digitati e non li puoi mascherare.

Samuele_70
15-05-2006, 21:07
Tempo fa avevo postato una cosa del genere qui (http://forum.html.it/forum/showthread.php?s=&threadid=958211&highlight=asterischi) .
Era solo per valori numerici, ma Ŕ facilmente modificabile.

Loading