Demande d'aide pour mon (1er) programme c++
ArCTiK twister [HardCorp.]
-
ArCTiKTwisTeR -
ArCTiKTwisTeR -
< 3 > - Demande d'aide pour mon prog C++
Ajouté par ArCTiKtwister [HardCorp.](29/08/2003 à 12:06 GMT+1)
Salut tout le monde voici mon premier prog en C++==
#include<iostream.h>
int main()
{
char var1[] = "arctik";
char var2[] = "twister";
cout<<"Tapez votre login:\n";
cin>>var1;
cout<<"Tapez votre pass:\n";
cin>>var2;
if ((var1=="arctik") && (var2=="twister"))
{
cout<<"Bienvenue\n";
}
else
{
cout<<"Au revoir\n";
}
char fin;
cin>>fin;
}
Voila c'est mon premier prog en c++ et si vous le tester, vous verrez qu'il ne fonctionne pas. Quelqu'un peut m'expliquer pourquoi pleaze.!!....
Merci d'avance tout le monde!!
Ajouté par ArCTiKtwister [HardCorp.](29/08/2003 à 12:06 GMT+1)
Salut tout le monde voici mon premier prog en C++==
#include<iostream.h>
int main()
{
char var1[] = "arctik";
char var2[] = "twister";
cout<<"Tapez votre login:\n";
cin>>var1;
cout<<"Tapez votre pass:\n";
cin>>var2;
if ((var1=="arctik") && (var2=="twister"))
{
cout<<"Bienvenue\n";
}
else
{
cout<<"Au revoir\n";
}
char fin;
cin>>fin;
}
Voila c'est mon premier prog en c++ et si vous le tester, vous verrez qu'il ne fonctionne pas. Quelqu'un peut m'expliquer pourquoi pleaze.!!....
Merci d'avance tout le monde!!
9 réponses
-
Salut
Deja fait un void main et non un int, de plus "ne marche pas" est sans doute pas le message d'erreur que tu recuperes et pour finir ca ressemble nettement plus a du C qu'a du C++
. .
\_/Sauvez Maily! Mangez Castor!
-
T'as raison, au fait ça ne m'affiche aucun messages d'erreurs!!
J'arrive même à lancer le programme après l'avoir compiler, mais il ne répond pas à mes attentes. Je rentre le login et le pass que j'ai définis et ça me répond "au revoir" au lieu de "Binvenue".
Alors j'ai inverser le "au revoir" et le "bienvenue "dans le code source, et là ça m'as afficher "bienvenue" après avoir entrer les données (aussi bien correctes que incorrectes)!!! -
bonsoir,
essaie d activer les avertissements de ton compilateur, ca t aidera.
#include<iostream.h>
// deprecie, c est
// #include <iostream>
int main()
// ok
{
char var1[] = "arctik";
// je prefere utiliser les std::string en C++
char var2[] = "twister";
cout<<"Tapez votre login:\n";
// c est std::cout
// ou alors mets using std; au dessus de main
// c est cependant deconseille pour les debutants
cin>>var1;
// c est std::cin
cout<<"Tapez votre pass:\n";
// c est std::cout
cin>>var2;
// c est std::cin
if ((var1=="arctik") && (var2=="twister"))
/* tu ne peux pas faire ca, tu compares un pointeur a une chaine de caracteres. je ne comprends pas que ca passe la compilation.
si tu choisis d utiliser les std::string, alors faire une comparaison d egalite est alors possible */
{
cout<<"Bienvenue\n";
// cest std::cout
// evite le \n, remplace par std::endl
// ex: std::cout << "bienvenue" << std::endl;
}
else
{
cout<<"Au revoir\n";
}
char fin;
// essaie de regrouper les declarations en debut de fonction
// ca ameliore la lisibilite
cin>>fin;
// et le return??
return 0;
}
enfin tes noms de variables sont mal choisis, var1, var2, ca rend le code incomprehensible.
bref, la meme chose en C++:
#include <iostream>
#include <string>
#define LOGIN "titi"
#define PASSWD "toto"
int main()
{
const std::string login = *new std::string(LOGIN);
const std::string passwd = *new std::string(PASSWD);
std::string input_login;
std::string input_passwd;
std::cout <<"Tapez votre login:"
<< login
<< std::endl;
std::cin >> input_login;
std::cout << "Tapez votre pass:"
<< passwd
<< std::endl;
std::cin >> input_passwd;
if ((input_passwd == passwd) && (login == login))
{
std::cout << "Bienvenue"
<< std::endl;
}
else
{
std::cout << "Au revoir"
<< std::endl;
}
char fin;
std::cin >> fin;
}
voili voilou,
--
pouet -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
salut a toi.
moi c'est landry.je suis en train d'apprendre le C et le C++.vu que tu débutes aussi,je me suis dit que nous pourions collaborer. Tu en pense quoi?
merci -
-
On ne compare pas des chaines de caractere avec "==" !!!!!!!!
Il faut utiliser la fonction strcmp :
if (strcmp(var1,"artick")==0)
Si tu es curieux strcmp est definie ainsi :
int strcmp(const char *a, const char *b){
while(*a != '\0' || *b !='\0')
if(*(a++) != *(b++))
return 1;
return 0;
}-
Bonjour,
je ne suis pas d'accord avec le définition donnée par stcmp
elle ne rend pas
0 si chaines égales
1 si chaînes différentes
mais elle rend
0 si chaines égales
un nombre positif (ou négatif): son signe indique laquelle des chaine est la plus grande. Sa valeur absolue indique la position ou elles différent
Cordialement,
Mirza
-
-
Tu as raison Mirza,
Le retour de strcmp est plus complexe que 0 ou 1.
Mais c'etait pour simplifier par rapport à ca qui nous interesser (la comparaison).