IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

teste d'une boucle


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut teste d'une boucle
    bonjour,
    j'ai commencé a créer un programme avec un teste if() qui vérifie si les deux variables précédements entrées sont les memes.
    Mais lors de l'éxécution le teste m'affiche un message d'erreur( prédéfinit dans le teste si les deux variables sont différente)alors que les deux variable entrer sont les memes
    voici mon code si quelqu'un peut m'apporté une aide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    #include<iostream>
    #include<iomanip>
    using namesapce std;
    int main()
    { 
     
    	const int Max = 99;           //Taille maximal du tableau
        char buffer[Max];
    	char pass[Max];
        char pass2[Max];
     
          cout<<"Entrez votre nom d'administrateur:\n";
    	cin>>buffer;
     
    	cout<<"Entrez votre mot de pass:\n";
    	cin>>pass;
     
    	cout<<"Tapez de nouveau votre mot de pass:\n";
    	cin>>pass2;
     
     
        if(pass2 != pass) 
    	{
     
     
                     cout<<setw(40)<< "-------------" << endl;
    		  cout<<setw(40)<<"|   ERREUR    |"<<endl;
    		  cout<<setw(40)<<"--------------" <<endl;
     
     
     
         	cout<<"Entrez votre mot de pass:\n";
         	cin>>pass;
     
         	cout<<"Tapez de nouveau votre mot de pass:\n";
        	cin>>pass2;
    	}
    	else;
     
     
     
    	cout<<"\n"<<"le pass est "<< buffer<<"\n"<<"votre pass est:"<<pass<<endl;
    	return 0;
     
    }

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    A la place des char, les string (voir FAQ) sont bien mieux !!!!

    Et qui plus est, ceci devrait résoudre ton pb!
    Les surchages sont correctement gérées!

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    pass et pass2 sont des pointeurs. Elles sont bien différentes... Toi, ce que tu veux comparer, c'est l'élément pointé.
    Voir : http://c.developpez.com/faq/c/?page=...RS_comparaison

    Si tu utilisais des string à la place des tableaux de caractères, ça te simplifierais la vie, non ?

  4. #4
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Tes elements pass et pass2 sont en fait les adresses de pass [0] et pass2 [0] si je ne m'abuse... donc fort heureusement dans ton cas differentes.... si tu ne veux vraiment pas utiliser des string, tu dois comparere les elements un a un jusqu'au retour chariot (oui je crois que ca doit etre un retour chariot qui termine tes entrées claviers)

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ton cin >> pass , il est très mauvais...
    Utilise des string:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string pass;
    std::cin >> pass
    est correct

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    tant qu'à faire, change aussi le if par une boucle. actuellement (modulo les erreurs) ton programme accepte la seconde fois le mots de passe meme si sa confirmation est différente.

  7. #7
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 487
    Par défaut
    aprés avoir déclaré std::string pass;
    std::cin >> pass;
    tu peut amélioré ta boucle comme tels:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(pass!=pass2)
    {
    do
    {
     // ce que tu veux
    }while(pass!=pass2);
    }
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Test d'une boucle if
    Par Pilote26 dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/10/2011, 21h13
  2. Réponses: 3
    Dernier message: 26/02/2009, 14h51
  3. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  4. Structure while avec une boucle for en test
    Par le_voisin dans le forum C++
    Réponses: 9
    Dernier message: 09/09/2006, 19h16
  5. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo