Bon ben salut, c´est la premiere fois que je poste sur ce topic car sa m´interessai pas tro avant, mai vu ke je me suis mis au C++,
alors voila, pas la peine de me dire
, je l´ai déja fai,
premiere question : crée t-on des jeux en C++ ? si oui, comment ?
deuxieme question : bon voila, je crée un programme que est sensé tenir la conversation à l´utilisateur, avant, mon programe répondait la meme chose koike l´utilisateur disait, le prog répondait la meme chose, mai maintenant,
avec la fonction If ( ..), je peu créer un programme qui réponde, mai probleme,
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
cout.setf(cout.boolalpha);
string nom;
cout<<"Entre ton nom : " ;
cin>>nom;
string texte1;
cout<<"Salut " <<nom<<" sa farte ? : " ;
cin>>texte1;
bool b;
string oui;
b = texte1 == oui;
if ( b == true)
{
cout<<"Ah ben moi ossi ! "<<endl;
}
bool b2;
string non;
b2 = texte1 == non;
if ( b2 = true AND) b = false)
{
cout<<"Mais pourquoi ? "<<endl;
}
system("PAUSE");
return 0;
}
que mette comme if si la reponse de l´utilisateur est non ? ? moi sa ne marche pas ! !
aidez moi svp !
merci d´avance ![]()
UP eh bin ? personne s´y connai ou koi ?
va voir ce site pour bien comprendre ce à quoi tu t´attaque : http://www.jiraf.org/modules.php?name=News&file=article&sid=134 .
Puis, si tu veux toujours faire des jeux vidéo et que tu te pose des questions sur la manière d´y arriver, va voir la F.A.Q. de Lapintade : http://perso.wanadoo.fr/ck/Langages.htm qui répond à toutes les questions.
Si après tout ça tu veux plus tard travailler dans le monde du jeu vidéo, vas voir le dossier de jv.com la dessus : https://www.jeuxvideo.com/articles/0000/00004365_dossier.htm qui présente tout les métier de cette filière.
if ( b2 = true AND) b = false)
And ?
Ca existe en C++ ? Je serais curieux de savoir...
avant de t´attaquer a des choses aussi compliquées ( tout est relatif, mais au vu de tes erreurs, ceci est compliqué pour toi), essaie de comprendre le principe des chaines de caracteres.
oui l´operateur AND existe en C/C++
C´est &&
if( condition1 && condition2 )
{
traitement_si_vrai
}
else
{
traitement_si_faux
}
Ok,
Je m´endormirais moins con ce soir ![]()
version corrigé de mon post précédent :
va voir ce site pour bien comprendre ce à quoi tu t´attaque : http://www.jiraf.org/modules.php?name=News&file=article&sid=134 .
Puis, si tu veux toujours faire des jeux vidéo et que tu te pose des questions sur la manière d´y arriver, va voir la F.A.Q. de Lapintade : http://perso.numericable.fr/ckckck/Langages.htm qui répond à toutes les questions.
Si après tout ça tu veux plus tard travailler dans le monde du jeu vidéo, vas voir le dossier de jv.com la dessus : https://www.jeuxvideo.com/articles/0000/00004365_dossier.htm qui présente tout les métier de cette filière.
UP eh bin ? personne s´y connai ou koi ?
T´en gentil, c´est pas un supermarché ici. Donc tu attends patiement et tu post pas des trucs de ce genre svp.
personne s´y connai ou koi ?
-> En tout cas pas toi :\
Je connais pas string, si c´est juste un typedef pour un char* alors le prob vient du faire que :
b = texte1 == oui;
Signifie :
b = ( /*Est-ce que l´adresse du premier élément de texte1 est égal à l´adresse du premier élément de oui*/);
Ce qui est obligatoirement faux ( le programme va pas créer deux variables à la même adresse ! )
Alors que ce que tu veux c´est comparer les chaînes...Il faut déjà donner la valeur " oui" à la chaîne oui ( car c pas son nom qui fait sa valeur, t´as pas l´air de l´avoir compris) et utiliser des fonctions de comparaison ( tel que strcmp pour les char*...à voir selon la définition de string)
Enfin, si tu comprends rien du tout à ce dont je parle, retourne sur tes cours de C/C++ ; -)
bon, excuse moi Ptival, mais malheureusement tu te trompe, car les string ne sont pas de simple ypedef pour les char*
par contre dans le programme ce n´est pas pare que tu appelle une string oui qu´elle contient oui.
remplace la ligne :
string oui;
par la ligne:
sstring oui("oui");
et tout marchera ( en tout cas ça) car là tu dit au programme que ta chaine oui contient le mot oui.
notez quand meme que ça depend si on parle de string en générale, ou de std::string ( ou autre implémentation encapsulée maison..)
( au passage, pour ceux que les AND à la place de && amusent, certains compilos aiment aussi les digraphes : pour pondre du code imbuvable, c´est tres pratique.. par ex taper :> pour symboliser un ] . pour l´utilité, c´est si vous devez coder sur des claviers qui n´ont pas ces symboles, ou des tables ascii ou certains caracteres manquent.. bref, super utilisé donc..)
Je n´vois pas trop comment il peut dire que des gens ne s´y connaissent pas ici en ayant attendu seulement 30 mins pour avoir une réponse . .. Et puis, à mon avis tu ferais bien de relire quelques tutos, parce qu´il y a certaines bases qui t´ont échappé là. Pour de bons tutos ( enfin je trouve) va sur www.fvirtman.fr.st .
dnob -> Oki bah j´ai expliqué un peu pour rien
Sinon l´opérateur == est surchargé pour les strings ?
ya of course, c´est très pratique.
Enfin c´est une question de convénience personelle. Moi je les utilise pas parce que j´aime pas ne pas savoir ce qui se cache sous le code que j´utilise, mais ça reste pratique.
je ne me rapelle plus exactement les priorités d´operateurs entre = et == mais:
si = prioritaire:
b = texte1 == oui; / /assigne l´adresse de texte1 à b ( copie l´adresse du pointeur texte1 dans le pointeur b, il faut que texte1 et b soient des pointeurs char), puis compare le résultat de l´assignation avec oui ( qui doit etre une variable bolléene).
si == prioritaire:
b = texte1 == oui; / /compare ( LES REFERENCES de)texte1 et oui, pas les chaines elles mêmes, donc texte1 et oui seront obligatoirement différents a partir du moment où ils ne pointent pas sur la même chaine, meme si les contenus des chaines sont identiques. Pour comparer des chaines, il faut utiliser
int strcmp(char[] string1,char[] string2);
( ou exactement la meme chose:
int strcmp(char* string1,char* string2);
)
le résultat de cette fonction est 0 si les chaines sont égales, < 0 is string1 est + petit que string2 et > 0 is string1 est + grand que string2
Pour finir, voila ta ligne corrigée:
b = ! strcmp(texte1,oui);
oula tant de reps ! !
lapintade -> le club des " gentils" modos !
et en fait, je me sui trompé ac le compier collé ! ! le AND c t juste pr tester ! ! merci encore !
Fenix[74] : c´est ça sauf que
si == prioritaire:
b = texte1 == oui;
b vaudra peut-être true car texte1 et oui sont des string ( si elle sont bien initialisé) et donc == compare vien le contenu des chaine ( et non pas juste le poitneur comme avec des char*).
bon alors, je vais poser clairement la quest :
je voudrai ke l´ordi réponde ( si texte1 = oui) : " ah cool"
et ke si il rep non il dise : " ah bon ? mais pourquoi ? "
merci de vos futures reps ( si vs pouviez m´envoyer le passage en fichier source ´copier-coller´ ce serai super ! !)
Avec la classe string, rien de plus simple :
string s;
cin > > s;
if ( s=="oui")
{
. ..
}
if ( s=="non")
{
. ..
}
Pour plus d´infos sur la classe string, regarde mon tuto ( cf ma carte) chapitre F.2.