Programma C (rubrica).

di il
21 risposte

Programma C (rubrica).

Ehi, ciao ragazzi, allora, ho fatto un programma, che ti mostra una rubrica, prima devi inserire la password, cioè hai 3 tentativi, dopo ti fa uscire, se metti la password giusta, ti apre la rubrica, il problema è, che io ho usato la password di tipo intero (int passwd; passwd = 12345, la domanda è, come posso mettere la password che non sia di cifre, ma di una parola, x esempio "Studia il C", mi potete fare un esempio, guardando il mio codice? Grazie mille
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <math.h>
#include <fstream>
#include <string>

int main()
{

system("COLOR 0A");
    
int passwd;
passwd = 12345;
int ZZZ = 0;

for(ZZZ = 0; ZZZ < 3; ZZZ++)
{
printf("\nInserisci la password (0-9): ");
scanf("%d",&passwd);

if(passwd!=12345)
{
printf("\nControllo password...\n");
Beep(1000, 1000);
_sleep(1000);  
printf("\nPassword errata!\n");
}
else if(passwd==12345)
{
printf("\nControllo password...\n");        
Beep(1000, 1000);  
_sleep(1000);        
printf("\nPassword corretta!\n");
_sleep(1000); 
printf("\nCaricamento rubrica in corso...\n");
_sleep(1000);  
printf(" *********************************************************** \n");
printf(" * | 1.  | *****     | ********    | +39 000 000 0000    | * \n");
printf(" * | 2.  |           |             |                     | * \n");
printf(" * | 3.  |           |             |                     | * \n");
printf(" * | 4.  |           |             |                     | * \n");
printf(" * | 5.  | ******    | **********  | +39 000 000 0000    | * \n");
printf(" *********************************************************** \n");

break;
}
}

system("pause");
return 0;
}

21 Risposte

  • Re: Programma C (rubrica).

    ultrasound91 ha scritto:


    
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <math.h>
    #include <string.h>
    
    int main() {
        system("COLOR 0A");
        char CorrectPasswd[32] = "12345";
        char InsertedPasswd[32];
        int ZZZ = 0;
        for(ZZZ = 0; ZZZ < 3; ZZZ++) {
            printf("\nInserisci la password (0-9): ");
            scanf("%s", &InsertedPasswd);
            if (strncmp(InsertedPasswd, CorrectPasswd, 32)) {
                printf("\nControllo password...\n");
                Beep(1000, 1000);
                _sleep(1000);
                printf("\nPassword errata!\n");
            }
            else {
                printf("\nControllo password...\n");
                Beep(1000, 1000);
                _sleep(1000);
                printf("\nPassword corretta!\n");
                _sleep(1000);
                printf("\nCaricamento rubrica in corso...\n");
                _sleep(1000);
                printf(" *********************************************************** \n");
                printf(" * | 1.  | *****     | ********    | +39 000 000 0000    | * \n");
                printf(" * | 2.  |           |             |                     | * \n");
                printf(" * | 3.  |           |             |                     | * \n");
                printf(" * | 4.  |           |             |                     | * \n");
                printf(" * | 5.  | ******    | **********  | +39 000 000 0000    | * \n");
                printf(" *********************************************************** \n");
                break;
            }
        }
    system("pause");
    return 0;
    }
    
    Ahhhh... Ecco come funziona, grazie mille, da quello che capisco dichiari char e fra le parantesi [dichiari la lunghezza?] poi usi strncmp per confrontare le password? Cmq grazie mille
  • Re: Programma C (rubrica).

    iARTEMx ha scritto:


    dichiari char e fra le parantesi [dichiari la lunghezza?]
    Non hai ancora affrontato i vettori in C ?

    Come scrivi una rubrica senza conoscere i vettori ?
    poi usi strncmp per confrontare le password?
    Sì. E' fatta apposta ... qui la documentazione

    http://www.cplusplus.com/reference/cstring/strncmp
  • Re: Programma C (rubrica).

    Sì, tutti gli hanno studiato tranne me, io sono andato a scuola x la prima volta a metà dicembre, cioè il mio anno scolastico è iniziato a dicembre (per motivi familiari [la morte di mio padre]) quindi mi sono perso un po' di cose, ma non sono scemo, a me mi basta un esempio e io poi lo capisco
    Ah, non la prima volta in assoluto, perché ho già il diploma di matuità in Odontotecnica (giusto per intenderci :/)
    Cmq grazie per il tuo aiuto
  • Re: Programma C (rubrica).

    Una domandina, come colorare una singola parola?
    Con system("color XX"); mi colora tutte le parole nel programma...
    Grazie...
  • Re: Programma C (rubrica).

    Aiuto! =)

    Volevo mettere un contattore, che mi mostri quante possibilità mi sono rimaste per scrivere la passwd, il problema è che non ci riesco, o mi va in loop con la cifra 3, o mi fa vedere subito da 0 a 3, mi potete aiutare?
    io ho usato così:
    int c=0;
    for(c=0;c<3;c++)
    Vi prego aiutatemi, voglio che quando c'è scritto, Password errata, che accanto ci sia anche "Hai ancora 3-2-1 tentativi..."
  • Re: Programma C (rubrica).

    Quindi devi visualizzare

    3-c

    oppure il contatore deve contare al contrario

    P.S. Ma questo è un ALTRO problema e va in un'ALTRA discussione ...
  • Re: Programma C (rubrica).

    ultrasound91 ha scritto:


    
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <math.h>
    #include <string.h>
    
    int main() {
        system("COLOR 0A");
        char CorrectPasswd[32] = "12345";
        char InsertedPasswd[32];
        int ZZZ;
        for(ZZZ = 3; ZZZ > 0; ZZZ--) {
            printf("\nInserisci la password (0-9): ");
            scanf("%s", &InsertedPasswd);
            if (strncmp(InsertedPasswd, CorrectPasswd, 32)) {
                printf("\nControllo password...\n");
                Beep(1000, 1000);
                _sleep(1000);
                printf("\nPassword errata!\n");
                printf("Tentativi rimasti : %d\n", ZZZ - 1);
            }
            else {
                printf("\nControllo password...\n");
                Beep(1000, 1000);
                _sleep(1000);
                printf("\nPassword corretta!\n");
                _sleep(1000);
                printf("\nCaricamento rubrica in corso...\n");
                _sleep(1000);
                printf(" *********************************************************** \n");
                printf(" * | 1.  | *****     | ********    | +39 000 000 0000    | * \n");
                printf(" * | 2.  |           |             |                     | * \n");
                printf(" * | 3.  |           |             |                     | * \n");
                printf(" * | 4.  |           |             |                     | * \n");
                printf(" * | 5.  | ******    | **********  | +39 000 000 0000    | * \n");
                printf(" *********************************************************** \n");
                break;
            }
        }
    system("pause");
    return 0;
    }
    
    Grazie mille UltraSound, funziona davvero
  • Re: Programma C (rubrica).

    Grazie mille UltraSound, funziona davvero
    Se ci avessi pensato un attimo tu, avresti avuto molta più soddisfazione rispetto alla pappa pronta ...

    (A parte che chiamare una variabile ZZZ non è proprio educativo per chi vorrebbe imparare a programmare, anche se non è questo il caso).
  • Re: Programma C (rubrica).

    oregon ha scritto:


    Grazie mille UltraSound, funziona davvero
    Se ci avessi pensato un attimo tu, avresti avuto molta più soddisfazione rispetto alla pappa pronta ...
    Lo so, infatti è da un paio di ore che cercavo di capire, io alla fine del printf mettevo così:
    printf("blah-blah %d,zzz)
    Senza -1 però
  • Re: Programma C (rubrica).

    Mi dispiace solo per i tuoi professori ...
  • Re: Programma C (rubrica).

    oregon ha scritto:


    Mi dispiace solo per i tuoi professori ...
    Perché?
  • Re: Programma C (rubrica).

    Beh, se non riesci a comprendere in due ore una cosa così semplice e hai bisogno sempre della pappa pronta di ultrasound, non avranno vita facile ...
  • Re: Programma C (rubrica).

    Scusami, ti dispiacerebbe leggere i primi post? Grazie.
  • Re: Programma C (rubrica).

    iARTEMx ha scritto:


    Ehi, ciao ragazzi, allora, ho fatto un programma, che ti mostra una rubrica, prima devi inserire la password, cioè hai 3 tentativi, dopo ti fa uscire, se metti la password giusta, ti apre la rubrica, il problema è, che io ho usato la password di tipo intero (int passwd; passwd = 12345, la domanda è, come posso mettere la password che non sia di cifre, ma di una parola, x esempio "Studia il C", mi potete fare un esempio, guardando il mio codice? Grazie mille
    Se utilizzi scanf per leggere una stringa, oltre ad essere un'applicazione insicura causa rischio di buffer overflow, non saresti in grado di inserire una stringa come "Studia il C", poiché al primo spazio incontrato la scanf si ferma.
    Si consiglia l'utilizzo di fgets: http://www.cplusplus.com/reference/cstdio/fgets

    ( Per leggere da tastiera bisogna passare come terzo parametro lo stdin )
Devi accedere o registrarti per scrivere nel forum
21 risposte