Aide c++ (mot de passe caché)

mot de passe

Le problème exposé dans ce sujet a été résolu.

Bonjour a tous, j’ai un probleme avec un de mes programme tout d’abord, j’aimerais créer un programme qui demande a l’utilisateur un mot de passe et ce mot de passe serait cacher par des étoile. Ensuite, le mot de passe serait comparer par le mot "sardine" si le mot de passe entrer est sardine marquer mot de passe valide sinon marquer non valide. J’ai commencer un bout de code, mais je n’arrive pas a bien le compléter. Je suis débutant. (Vous pouvez m’aligner sur un autre bout de code.)

    char t1[20];
    char ch;
    short i = 0;
    short j = 0;

    
    cout << "Entrer le mot de passe" << endl;
    while(i<75 && j == 0)
    {
        ch = getchar();
        if (ch == '\r')
        {
            j = 20;
        }
        else if (ch != '\r')
            t1[i] = ch;
            cout << "*";
            i++;
    }
}
+0 -0

Il faut bidouiller la console avec des instructions non standards, ni portables pour

  1. empêcher l’affichage du caractère saisi
  2. ne pas attendre le prochain retour charriot pour avoir accès au caractère, et donc afficher l’étoile aussi sec.

Bref, cela va dépendre de ton OS/famille-de-terminal.Ou alors, il faut employer des bibliothèques portables comme pd/(n)curses.

Attention également au code de ton else if : je pense qu’il lui manque des accolades.

J’ai lu en diagonale le code, c’est peut-être intentionnel.
Si c’est le cas, les lignes 17 et 18 devraient perdre un niveau d’indentation, cela aidera à mieux cerner le code et à le rendre plus propre.

std::cout << "passwd: " << std::flush;
std::string passwd;
std::cin >> passwd;

if (passwd != "toto")
    std::cout << "mauvais mot de passe\n";

Ce n’est pas compliqué

Quant aux étoiles, ce n’est pas trivial, et j’ai donné un liens vers des éléments de réponse dans mon avant-dernier message.

Parce qu’il y a beaucoup de code que je ne comprendre pas pour les étoiles dans le liens que vous m’avez envoyer. Pour ce que je veut faire je dois utiliser des tableau a double dimensions je croit.

Affranchis

Et que veux-tu faire de plus ? Ton code peut déjà comparer deux chaînes pour vérifier un mot de passe sans tableau à deux dimensions. Si tu utilises les types natifs du C++ comme dans l’exemple de lmghs, c’est encore plus simple.

Pour les exemples donnés sur le lien (http://www.cplusplus.com/articles/E6vU7k9E/), je pense qu’on peut difficilement t’en donner des meilleurs. Si tu ne peux pas le comprendre, c’est que tu n’as pas encore assez progressé dans ton apprentissage. Tu pourras donc revenir là dessus plus tard, prends ton temps.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte