Annuncio

Collapse
No announcement yet.

confronto di stringhe - C++

Collapse
X
  • Filtro
  • Ora
  • Show
Clear All
new posts

  • confronto di stringhe - C++

    cari programmatori uber, spero che qualcuno di voi usi il C++ in modo da potermi aiutare

    sto facendo un piccolo programma per un gruppo di amici che gioca di ruolo, simulando l'azione di forze speciali di polizia =P

    all'inizio del programma ho introdotto la verifica di nome utente e password in modo elementare, confrontando un numero e una stringa inseriti con altri impostati nel codice.
    in questo pezzo di eseguibile vengono visualizzate appena prima che siano richieste

    per il listato vedere il reply #4, questo era totalmente sbagliato.

    al solito, il mio listato è terribilmente lungo e macchinoso

    in ogni caso (user uguale o diversa) ho fermato il programma facendogli aspettare l'inserimento di un valore (variabile a);
    dopo l'introduzione del nome utente viene confrontato a schermo quello inserito a mano con quello preimpostato.

    e qui impazzisco!!!

    a me vengono visualizzati due numeri uguali ma al momento del confronto il programma decide che sono diversi... non mi pare di aver fatto errori di battitura ;(

    se vi accorgete di qualche cazzata immane che io avendolo letto e riletto decine di volte non noto.... grazie



    PS: inoltre una delle varie funzioni del codice è concepita per essere utilizzata un numero limitato di volte.
    è gestita da un contatore che decresce fino ad arrivare a 0...
    c'e' modo di evitare che rilanciando il programma il contatore non si resetti?
    danke
    Ultima modifica di Jandalar; 17/02/07, 11:08. Motivo: avevo scritto "retto e riletto" =P
    Originariamente Scritto da Garbo
    Che l'autoerotismo sia praticato non mi è nuovo.

    Originariamente Scritto da Garbo
    Credo che il rapporto con il partner si fondi su molte cose, oltre all'enorme affetto deve esserci anche il sesso.

  • #2
    chiedo umilmente venia per aver replyato invece di editare.....

    anyway, ho ributtato un paio di volte e il problema persiste.

    peraltro, mi piacerebbe che i caratteri della password non fossero visualizzati come numeri ma come, è possibile senza dover ogni volta pulire tutto lo schermo?
    Ultima modifica di Jandalar; 16/02/07, 18:28. Motivo: sono un peerla
    Originariamente Scritto da Garbo
    Che l'autoerotismo sia praticato non mi è nuovo.

    Originariamente Scritto da Garbo
    Credo che il rapporto con il partner si fondi su molte cose, oltre all'enorme affetto deve esserci anche il sesso.

    Commento


    • #3
      Non riesco a capire molto da quanto scrivi.
      Provo a rispondere intanto però a un paio di tue domande.
      Per quanto riguarda la possibilità di non azzeramento di un contatore in funzione di ogni reset del programma, un modo per effettuare questa cosa c'è, ed è elementare, ovvero salvare su un file il valore di tale contatore e recuperarlo a ogni esecuzione del programma.
      Come si faccia non ne ho idea dato che all'università non ho ancora studiato la memorizzazione su files.

      Per quanto riguarda la seconda domanda non si capisce bene ma ipotizzo che tu voglia intendere che in corrispondenza della pressione di un carattere della password su tastiera venga visualizzato sullo schermo un asterisco.
      Per questo devi vedere se ci sono funzioni predefinite in c++ che permettano di memorizzare un carattere senza avere un eco su schermo.
      In caso affermativo, una soluzione al problema potrebbe essere quella di impostare una funzione nel modo seguente.
      Al passo i-simo(con i indice di ciclo che assumera' valori da 1 al numero di caratteri della stringa da inserire) viene richiesto un carattere della stringa che viene memorizzato opportunamente per conservarlo e viene dato in output su schermo un asterisco.

      Commento


      • #4
        mah... non capisco se sto diventando scemo io o cosa. quello non è il listato che ho inserito io e non funzionerà mai logicamente O_o


        //programma di identificazione di soggetti
        //problemi da risolvere: controllo stringa di caratteri...
        #include
        #include
        #include
        using namespace std;
        //void attendi(float secondi);
        //void confronta(int numero);
        main()
        {
        system("color 0F");//imposta il colore di sfondo e carattere
        int psw=123;//password settata
        char user[20]="guardiano";//nome utente settato
        int upsw;//password inserita
        char uuser[20];//nome utente inserito
        int id;//variabile: numero della carta d'identità
        int scelta;//variabile: scelta dell'operazione
        int tipo;//variabilr:tipo di ricerca
        int i;//variabile: mantiene attivo il ciclo di operazioni
        int b;//verifica termine operazioni
        int a;//variabile opportunista
        int cont=3;//variabile: contatore ricerca rapida
        cout<<"\t S.T.A.R.T. Softairpolice\n\n\t- Identificazione di soggetti -\n";
        cout<<"\nNome utente: "< cout<<"\nInserire il nome utente... "; //richiesta nome utente
        cin>>uuser; //inserimento del nome utente da parte dell'operatore
        cout<<"\n"< cout<<"\nInserire la password, prego... "; //richiesta password
        cin>>upsw; //inserimento passord da parte dell'operatore
        if ((upsw==psw)&&(user==uuser)) //controllo uguaglianza nome utente e password
        {
        cout<<"\nAutenticazione riuscita."; //
        cout<<"\nBenvenuto, utente '"< cin>>a; //mette il programma in attesa
        }
        else //in caso contrario...
        {
        if (psw!=upsw) cout<<"\nPassword errata."; //messaggio nel caso la psw sia sbagliata
        if (user!=uuser) cout<<"\nNome utente non riconosciuto"; //e nel caso sia invece il nome utente
        cout<<"\nAccesso negato.";
        // attendi(1);
        cout<<"\nChiusura tra 3 secondi.";
        // attendi(1);
        cout<<"\nChiusura tra 2 secondi..";
        // attendi(1);
        cout<<"\nChiusura tra 1 secondi...";
        // attendi(1);
        i=1; //imposta i=1 facendo uscire il programma da un ciclo
        cin>>a; //mette il programma in attesa
        }
        }


        in questa versione id e psw vengono suggeriti prima di essere richiesti, quindi o io sono dislessico e disgrafico....

        o c'e' qualcosa che non capisco.

        entrambe le stringhe sono di 20 elementi, non credo possa essere un problema di caratteri liberi residui -_-
        Ultima modifica di Jandalar; 17/02/07, 11:10. Motivo: agiunta info^^
        Originariamente Scritto da Garbo
        Che l'autoerotismo sia praticato non mi è nuovo.

        Originariamente Scritto da Garbo
        Credo che il rapporto con il partner si fondi su molte cose, oltre all'enorme affetto deve esserci anche il sesso.

        Commento


        • #5
          metodo diverso, problema diverso. Sono anche riuscito a visualizzare gli asterischi invece dei numeri^^

          #include iostream.h
          #include conio.h
          #include stdio.h
          #include string.h

          main ()
          {
          char uuser[30];
          char user[30]={"bauz"};
          int i=0;

          cout<<"Inserire password... ";
          do{
          uuser[i]=getch();
          i++;
          if((int)uuser[i-1]!=13)
          cout << "*";
          }while((int)uuser[i-1]!=13);
          uuser[i-1]='\0'; //inserimento fine stringa
          cout< if(strcmp(uuser,user)==0) //confronto tra due char
          cout<<"la password e\' giusta \n"< else
          cout<<"Password errata"< getch();
          }


          nell'inclusione delle librerie mettete voi i caratteri "<" e ">" perche' non ci riesco io =P
          Ultima modifica di Jandalar; 20/02/07, 15:24.
          Originariamente Scritto da Garbo
          Che l'autoerotismo sia praticato non mi è nuovo.

          Originariamente Scritto da Garbo
          Credo che il rapporto con il partner si fondi su molte cose, oltre all'enorme affetto deve esserci anche il sesso.

          Commento

          Sto lavorando...
          X