Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C] Leggere stringa mascherata

    Vorrei sapere come poter leggere una stringa e non far vedere i caratteri inseriti.

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

  2. #2
    Qualcuno può aiutarmi?

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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?

  4. #4
    Per il momento mi interessa saperlo per modalità dos, da prompt.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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

    codice:
    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);

  6. #6
    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?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come saprai il 13 e' il codice del tasto return. Questo viene inserito nella stringa ma sostituito dal terminatore.

  8. #8
    Un ultima domanda:
    che differenza c'è tra la lettura di una carattere con scanf("%c", pwd) e getch()?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Con la scanf hai l'eco dei caratteri digitati e non li puoi mascherare.

  10. #10
    Tempo fa avevo postato una cosa del genere qui .
    Era solo per valori numerici, ma è facilmente modificabile.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.