A voir également:
- Demande d'aide pour mon (1er) programme c++
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
- Sms programmé - Guide
9 réponses
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
29 août 2003 à 12:11
29 août 2003 à 12:11
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
Où est la POO dans tout ça?
lanocm
Messages postés
62
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
8 octobre 2013
3
1 sept. 2003 à 16:15
1 sept. 2003 à 16:15
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
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).
Le retour de strcmp est plus complexe que 0 ou 1.
Mais c'etait pour simplifier par rapport à ca qui nous interesser (la comparaison).
30 août 2003 à 00:23
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