Partage
  • Partager sur Facebook
  • Partager sur Twitter

Demandé un password avec des caracteres....

Sujet résolu
    13 juin 2006 à 19:35:20

    Bonjour,

    alors voila je voudrais demandé avec un "scanf" un password qui contient des caracteres et aprés dire si il est juste par raport a une condition... enfin je ne sais pas trop comment m'écpliquer regardez le code source vous comprendrez mieu je pense:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main(int argc, char *argv[])
    {
        char code[500];

            printf("Hello world!\n");
            printf("\nTu dois trouver le mot de passe. aller essaye:\n\n");
            printf("code = ");
            scanf("%s", code);
           {
            if(code == 'bobjojo') //le password
                {
                printf("C'est tres bien tu vien de trouver le code du kill_Crack, Bravo\n\n");
                }
            else
               {
                printf("C'est pas ca, retante ta chance...\n\n");
               }
            }
        printf("Aller a la prochaine fois ;-)\n\n\n");
        system("PAUSE");
            return 0;
    }


    Voila j'esper que vous avez compris la ou je voulais en venir. :)
    Merci d'avance pour vos réponses :D
    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2006 à 19:37:08

      en fait, ce serait intéressant que tu programme la fonction toi-meme : tu récupère les touches de l'utilisateur, tu élimine les Echap, Suppr, etc, et tu affiche des * à la place
      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2006 à 19:49:34

        Tu me demande de programmer un keylogger inteligent la non?

        je pense pas y'ariver mais c'est une idée :)

        Et pour l'instant ya pas plus simple? :euh:
        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2006 à 19:52:44

          if(code == 'bobjojo') //le password

          Oui mais non, on ne compare pas comme ça une chaine de caractères, on utilise strcmp (va jeter un oeil dans le cours)
          • Partager sur Facebook
          • Partager sur Twitter
            13 juin 2006 à 19:53:02

            POur comparer deux chaines, on ne fait pas comme ca, on utilise la fonction strcmp !
            • Partager sur Facebook
            • Partager sur Twitter
              13 juin 2006 à 19:54:20

              Crée 2 tableaux et compare les (n'oublie pas d'enlever le \0).
              • Partager sur Facebook
              • Partager sur Twitter
                13 juin 2006 à 19:55:56

                {//sa...
                        if(code == 'bobjojo') //le password
                            {
                            printf("C'est tres bien tu vien de trouver le code du kill_Crack, Bravo\n\n");
                            }
                        else
                           {
                            printf("C'est pas ca, retante ta chance...\n\n");
                           }
                        }//et sa

                c'est bien mais regarde tu n'ouvre rien tu veux faire quoi?une boucle?une condition sa n'as aucun cense ces { et } au debut et au bout du code que je montre
                • Partager sur Facebook
                • Partager sur Twitter
                  13 juin 2006 à 20:00:27

                  tu veux que ton programme fonctionne ou que les caractères écris soit caché ?

                  Si c'est que ton programme fonctionne, le problème vient de là :

                  Citation : killerbob

                  [...]
                  if(code == 'bobjojo')
                  [...]



                  Tu compare un pointeur avec une chaine de caractère (car un tableau est un pointeur).

                  Alors pour comparer deux chaines de caractère il existe une fonction :

                  int strcmp(const char* chaine1, const char* chaine2);


                  Elle est dans la libraire string.h donc n'oublie pas de l'inclure.

                  Si tu as besoin d'explication pour la fonction strcmp je crois que M@teo en parle dans sont tutoriel C dans le chapitre "chaine de caractère".

                  j'espère avoir repondu à ta question.

                  EDIT : Je susi trop lent !!! ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 juin 2006 à 20:07:43

                    Allez correction :

                    #include <stdio.h>
                    #include <stdlib.h>
                    #include <string.h>

                    int main(int argc, char *argv[])
                    {
                        char code[500] = "";

                            printf("Hello world!\n");
                            printf("\nTu dois trouver le mot de passe. aller essaye:\n\ncode =");
                            scanf("%s", code);
                           
                            if(strcmp(code, "bobjojo") == 0) //le password
                                printf("C'est tres bien tu vien de trouver le code du kill_Crack,     
                                Bravo\n\n"
                    );
                            else
                                printf("C'est pas ca, retante ta chance...\n\n");
                           
                        printf("Aller a la prochaine fois ;-)\n\n\n");
                        getchar();

                        return 0;
                    }
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 juin 2006 à 20:18:01

                      Est-ce qu'il ya un moyen pour que le texte s'affiche sous forme de * ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 juin 2006 à 20:20:55

                        ridjidji tu compte le nombre de caractere dans une chaine et tu affiche une étoile par caractere
                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 juin 2006 à 20:21:05

                          On a déjà fait ceci ... fais une recherche.

                          XT95 -> Cela n'efface pas les caractères sélectionnés.

                          Je propose plutot de faire une boucle ayant comme condition de ne pas trouver le caractère "\n" et ayant pour instructions de récupérer (getchar) le caractère dans une chaine (strcat), et remplacer le caractère entré par une étoile. (putchar)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 juin 2006 à 20:49:20

                            Moi je proposerai plus un truc comme ça :
                            #include <stdio.h>
                            #include <stdlib.h>

                            #define MAX 16

                            int main()
                            {
                                /* Le mot de passe entré */
                                char passwd[MAX];

                                /* Position */
                                int pos = 0;

                                passwd[0] = '\0';

                                puts("Veuillez entrer le mot de passe :\n");

                                do {
                                    int i = 0;
                                    putchar('\r');
                                    for(; i <= pos; i++)
                                        putchar('*');
                                   
                                    passwd[pos] = getchar();
                                    pos++;
                                } while(passwd[pos-1] != '\n');

                                passwd[pos] = '\0';

                                if(strcmp(passwd,"thebiguncrackablepasswd") == 0)
                                    puts("o_O ... Et ben non ! C'etait pas ca !");
                                    /* en fait si mais je suis mauvais perdant */
                                else
                                    puts("Mot de passe incorrect");

                                return 0;
                            }

                            Faut juste rajouter l'effacement et tout ça...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 juin 2006 à 20:58:08

                              Merci beaucoup a vous tous, j'ai revu vite fait le cour sur les chaine mais j'ai pas du voir "strcmp" :-(

                              Et remram44 pourquoi ce compliqué quand on peut faire simple?
                              aprés tous ca revient au même ton truc non?

                              en tout cas encor merci :-D
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 juin 2006 à 21:00:57

                                Ben je crois avoir posté le seul code qui affiche des étoiles, non ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 juin 2006 à 21:18:37

                                  Ha ok c'été pour les étoiles :-) désolé
                                  Ben bravo :-°
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 juin 2006 à 21:44:08

                                    remram44 -> Je vois pas trop l'interêt, tant de code pour pas grand chose, non ? Je n'ai sans doute pas compris mais s'il n'était question que d'afficher des étoiles, pourquoi ne pas tout simplement écrire x étoiles sur la sortie, x étant le nombre de caractères lus ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 juin 2006 à 22:28:46

                                      Citation : mleg

                                      pourquoi ne pas tout simplement écrire x étoiles sur la sortie, x étant le nombre de caractères lus ?


                                      Parce que tu obtiendrais ceci :
                                      Tape the password below :
                                      leMagnifiqueMotDePasse**********************


                                      Il faut impérativement utiliser une boucle pour effacer le caractère entré et le remplacer par une étoile à chaque fois qu'un est entré.

                                      Et puis, je ne vois pas en quoi cela le complique grandement ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        13 juin 2006 à 22:58:14

                                        hum je vous envoie le code demain en SDL vu ke je suis le meilleur ! lol. Bon je v essayer de me dépecher pcque la ya mes parents qui me gueulent dessus ... :-° lool @+ bonne chance
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Demandé un password avec des caracteres....

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown