Login

di il
8 risposte

Login

Salve a tutti volevo sapere se c'è una soluzione a questo problema.
Vorrei fare un semplice login con password in modo tale che quando la inserisci si vedano gli asterischi. Vi mostro il mio codice :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<unistd.h>
#define MAX 300

int main( void ){
char password[] = "ciao";
char pass[MAX];
char c;
int i;

printf("Inserisci la password: ");

c = getch();

while( c != '\n'){
pass = c;
i++;
printf("*");
c = getch();
}



return 0;

}




Il problema è che non riconosce quando premo invio e continua a scrivere senza sosta.

8 Risposte

  • Re: Login

    Le correzioni da fare sono 3

    int i = 0;

    while( c != '\r') {

    e dopo la while

    pass=0;
  • Re: Login

    Grazie milleeeeeeee..
    Mi spieghi perché '\r' anziché '\n'?
  • Re: Login

    Perché il return è \r mentre il \n è il linefeed
  • Re: Login

    Ti adoro <3

    Ma un'ultima domanda , so che sono palloso però giuro che è l'ultima

    Quando inserisco la password e sbaglio un carattere il programma mi inserisce l'asterisco anche se poi in effetti salva la password giusta.
    Come faccio a fargli cancellare pure l'asterisco?
  • Re: Login

    Senza la libreria conio.h com'è possibile realizzarlo?

    conio.h non è standard C.
  • Re: Login

    Ma è inserita la libreria conio.h
  • Re: Login

    A questo punto cambierei così
    
    	int i=0;
    
    	printf("Inserisci la password: ");
    
    	do
    	{
    		c = _getch();
    	
    		switch(c)
    		{
    			case '\b':
    				if (i>0)
    				{
    					i--;
    					printf("\b \b");
    				}
    				break;
    			case '\r':
    				break;
    			default:
    				pass[i] = c;
    				i++;
    				printf("*");
    		}
     	} while( c != '\r');
    	pass[i]=0;
    
  • Re: Login

    Ottimo grazie mille
Devi accedere o registrarti per scrivere nel forum
8 risposte