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!!
A voir également:
- Demande d'aide pour mon (1er) programme c++
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
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++
. .
\_/
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)!!!
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
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
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;
}
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
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
surtout pas. void main() n est pas defini en C++
tu as
int main(void)
int main(int argc, char *argv[])
et c est tout.
--
pouet