Conditions en C++
Franky23
-
Sri Lumpa Messages postés 177 Date d'inscription Statut Membre Dernière intervention -
Sri Lumpa Messages postés 177 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je travaille depuis tout récemment en C++. Je travaille avec les conditions mais j'arrive seulement à les faire fonctionner avec des chiffres.
Ex.
long nombreEntre = 0;
cout << "8 + 2 = ";
cin >> nombreEntre;
if (nombreEntre == 10)
{
cout << "Exact" << endl;
}
else
{
cout << "Faux" << endl;
}
-----------------------------
Moi je veux cela avec des chaînes de caractères comme ceci :
char pseudo[] = "";
char valide[] = "Frank";
cout << "Votre pseudo : ";
cin >> pseudo;
if (pseudo == valide)
{
cout << "Vous pouvez entrer" << endl;
}
else
{
cout << "Quittez S.V.P." << endl;
}
-----------------------------
Résultat : Si j'entre Frank, on inscrit "Vous pouvez entrer". Si j'écris autre chose, on inscrit "Quittez S.V.P.". Dans mon cas, il fait comme si ce n'était jamais égal car j'entre "Frank" mais il m'écrit "Quittez S.V.P.".
Aidez-moi vite!!!
je travaille depuis tout récemment en C++. Je travaille avec les conditions mais j'arrive seulement à les faire fonctionner avec des chiffres.
Ex.
long nombreEntre = 0;
cout << "8 + 2 = ";
cin >> nombreEntre;
if (nombreEntre == 10)
{
cout << "Exact" << endl;
}
else
{
cout << "Faux" << endl;
}
-----------------------------
Moi je veux cela avec des chaînes de caractères comme ceci :
char pseudo[] = "";
char valide[] = "Frank";
cout << "Votre pseudo : ";
cin >> pseudo;
if (pseudo == valide)
{
cout << "Vous pouvez entrer" << endl;
}
else
{
cout << "Quittez S.V.P." << endl;
}
-----------------------------
Résultat : Si j'entre Frank, on inscrit "Vous pouvez entrer". Si j'écris autre chose, on inscrit "Quittez S.V.P.". Dans mon cas, il fait comme si ce n'était jamais égal car j'entre "Frank" mais il m'écrit "Quittez S.V.P.".
Aidez-moi vite!!!
A voir également:
- Conditions en C++
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Windows 8 / 8.1
- Libreoffice calc si plusieurs conditions ✓ - Forum LibreOffice / OpenOffice
- Mise en forme conditionnelle avec 2 conditions ✓ - Forum Bureautique
2 réponses
Houlà !
Je t'arrete tout de suite, ce que tu fait là ce sont des énormité !
char[] ou char*, ce sont des pointeurs (des adresses mémoire) toute opération faite dessus s'apparente à comparer des adresses mémoire, ce qui n'est pas ce que tu cherche à faire. Comme tu fait du C++ et non du C, je te conseil (pour l'instant) de ne pas t'occuper de ces histoires (tu risque de perdre beaucoup de temps pour pas grand chose) et d'utiliser les "string".
Dans ton programme, il suffit juste de changer le type des chaines de caractère.
Je t'arrete tout de suite, ce que tu fait là ce sont des énormité !
char[] ou char*, ce sont des pointeurs (des adresses mémoire) toute opération faite dessus s'apparente à comparer des adresses mémoire, ce qui n'est pas ce que tu cherche à faire. Comme tu fait du C++ et non du C, je te conseil (pour l'instant) de ne pas t'occuper de ces histoires (tu risque de perdre beaucoup de temps pour pas grand chose) et d'utiliser les "string".
#include <string> std::string valide="Frank";Les string sont des objets d'un plus haut niveau et beaucoup plus intuitif que les char[].
Dans ton programme, il suffit juste de changer le type des chaines de caractère.
Pour comparer des chaines tu es obligé d'utiliser des fonctions, tu ne peux pas les comparer "brutalement" avec un == car alors tu compares leur adresse dans la mémoire qui, sauf si il s'agit exactement de la même variable, seront forcement différentes. Si tu veux plus d'infos sur les adresses (ou aussi pointeurs), cherche quelques tutos sur internet (à mon avis c'est plus qu'indispensable quand tu fais du C).
Bref, si tu veux comparer des chaînes de caractères, tu dois utiliser une fonction pour. En C, tu as la fonction strcmp(char* chaine1, char* chaine2) dans string.h si j'ai bonne mémoire. Elle retourne 0 si les deux chaînes sont égales, -1 si chaîne2 est "supérieure" (dans l'ordre alphabétique) à chaîne1 et 1 dans le cas contraire. Au cas où, si tu as envie de t'amuser, fais ta propre fonction de comparaison ;)
Bref, si tu veux comparer des chaînes de caractères, tu dois utiliser une fonction pour. En C, tu as la fonction strcmp(char* chaine1, char* chaine2) dans string.h si j'ai bonne mémoire. Elle retourne 0 si les deux chaînes sont égales, -1 si chaîne2 est "supérieure" (dans l'ordre alphabétique) à chaîne1 et 1 dans le cas contraire. Au cas où, si tu as envie de t'amuser, fais ta propre fonction de comparaison ;)