[C++] Je débute : problème avec "char"

Je débute : problème avec "char" [C++] - C++ - Programmation

Marsh Posté le 23-09-2003 à 22:02:14    

Voilà, je viens de commencer le C++ et je n'arrive pas à faire quelque chose.
Par exemple, pour un vrai/faux dans une console :
 

Code :
  1. int main(char a)
  2. cout << "vrai ou faux : ";
  3. cin >> a;
  4. if (a=='v')
  5. cout << "Correct !" << endl;
  6. else
  7. cout << "Faux !" << endl;


 
Ce code fonctionne.
 

Code :
  1. int main(char a)
  2. cout << "vrai ou faux : ";
  3. cin >> a;
  4. if (a=='vrai')
  5. cout << "Correct !" << endl;
  6. else
  7. cout << "Faux !" << endl;


 
Par contre, sur celui-ci, une foi complilé et dans la console, quand j'inscrit vrai, ben ça plante... comment ça se fait ?
 
(c'est surment très con, mais là, je vois pas)


Message édité par drvins le 23-09-2003 à 22:04:28
Reply

Marsh Posté le 23-09-2003 à 22:02:14   

Reply

Marsh Posté le 23-09-2003 à 22:03:58    

un char, c'est un caractère, pas une chaîne de caractères

Reply

Marsh Posté le 23-09-2003 à 22:04:10    

ça ne compile meme pas ton truc

Reply

Marsh Posté le 23-09-2003 à 22:04:56    

noldor a écrit :

un char, c'est un caractère, pas une chaîne de caractères


Je m'en doute, mais je dois faire comment alors ?

Reply

Marsh Posté le 23-09-2003 à 22:05:21    

Taz a écrit :

ça ne compile meme pas ton truc


Oui, j'ai juste pris un bout du code pour montrer ce qui va pas...

Reply

Marsh Posté le 23-09-2003 à 22:06:11    

char* et utiliser strcmp ?
ou alors STL


Message édité par noldor le 23-09-2003 à 22:07:34
Reply

Marsh Posté le 23-09-2003 à 22:09:05    

noldor a écrit :

char* et utiliser strcmp ?
ou alors STL


Comment je dois faire exactement ?

Reply

Marsh Posté le 23-09-2003 à 22:12:32    

DrVins a écrit :


Comment je dois faire exactement ?


[mode taz]
aller t'acheter un bouquin
[/mode taz]
 
plus sérieusement,  

Code :
  1. int main() {
  2. char* a;
  3. cout << "vrai ou faux : ";
  4. cin >> a;
  5. if (strcmp(a,"vrai" ))
  6. cout << "Correct !" << endl;
  7. else
  8. cout << "Faux !" << endl;
  9. }


 
un truc dans le genre

Reply

Marsh Posté le 23-09-2003 à 22:13:37    

utilise std::string à la place de char (n'utilise pas des char *, sauf que t'as pas le choix, char * c'est pour du C par pour du C++)
 
fais un #include <string> pour que std::string soit connu
 
et 'vrai' ça risque pas de passer, les chaînes sont entre "  " en C et C++
 
noldor >> si ton truc avec pointeur non initialisé ne plante pas, je te félicite :D


Message édité par antp le 23-09-2003 à 22:14:53

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2003 à 22:14:54    

antp a écrit :

utilise std::string à la place de char
 
fais un #include <string> pour que std::string soit connu
 
et 'vrai' ça risque pas de passer, les chaînes sont entre "  " en C et C++
 
noldor >> si ton truc avec pointeur non initialisé ne plante pas, je te félicite :D

ah putain, quel con !
à ma décharge, j'ai pas fait de C depuis 2 ans, et pas de compilo sous la main
edit : et en plus c'est du C++


Message édité par noldor le 23-09-2003 à 22:16:06
Reply

Marsh Posté le 23-09-2003 à 22:14:54   

Reply

Marsh Posté le 23-09-2003 à 22:15:42    

noldor a écrit :

j'ai pas fait de C depuis 2 ans


 
de toute façon ici ça parle de C++ [:ddr555]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2003 à 22:17:25    

noldor a écrit :

ah putain, quel con !
à ma décharge, j'ai pas fait de C depuis 2 ans, et pas de compilo sous la main
edit : et en plus c'est du C++

Essaie pas de te rattraper aux branches, la gaffe est faite, taz va te tomber dessus [:taz]
 
 
 :lol:

Reply

Marsh Posté le 23-09-2003 à 22:18:19    

*Syl* a écrit :

Essaie pas de te rattraper aux branches, la gaffe est faite, taz va te tomber dessus [:taz]
 
 
 :lol:  

je me rattrape à rien du tout
c'est facile de pas se tromper quand on fait rien

Reply

Marsh Posté le 23-09-2003 à 22:18:36    

noldor a écrit :


 
plus sérieusement,

Code :
  1. int main() {
  2. char* a;
  3. cout << "vrai ou faux : ";
  4. cin >> a;
  5. if (strcmp(a,"vrai" ))
  6. cout << "Correct !" << endl;
  7. else
  8. cout << "Faux !" << endl;
  9. }


un truc dans le genre


 
 :pfff:  
 

Code :
  1. int main() {
  2. char a[256];
  3. cout << "vrai ou faux : ";
  4. cin >> a;
  5. if (!strcmp(a,"vrai" ))
  6. cout << "Correct !" << endl;
  7. else
  8. cout << "Faux !" << endl;
  9. }


 
c'est laid, mais au moins ça risque de marcher  :o


Message édité par schnapsmann le 23-09-2003 à 22:31:44

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 23-09-2003 à 22:48:57    

vous êtes tous très énervants avec vos conneries ...
 

Code :
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. int main(char *argv[])
  5. {
  6. string input;
  7.   cout << "question : " << flush;
  8.   cin >> input;
  9.   if(input=="Vrai" )
  10.   {
  11.     cout << "correct!\n";
  12.   }
  13.    else
  14.   {
  15.     cout << "pas bien!\n";
  16.   }
  17. }

Reply

Marsh Posté le 23-09-2003 à 22:49:29    

SchnapsMann a écrit :


c'est laid, mais au moins ça risque de marcher  :o

je te le fais planter directe

Reply

Marsh Posté le 23-09-2003 à 22:50:42    

C'est génant de mélanger C/C++ dans le même code? du moment qu'on est en .cpp et avec un compilateur C++ ca passe, mnt c'est ptet super crade...


---------------
Se souvenir des belles choses...
Reply

Marsh Posté le 23-09-2003 à 22:51:40    

Taz a écrit :

je te le fais planter directe


j'ai jamais dis le contraire :fuck:, le mien plante avec un mot de 256 caractère  :pfff:


Message édité par schnapsmann le 23-09-2003 à 22:53:53

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 23-09-2003 à 22:55:33    

Taz a écrit :

vous êtes tous très énervants avec vos conneries ...
 

Code :
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. int main(char *argv[])
  5. {
  6. string input;
  7.   cout << "question : " << flush;
  8.   cin >> input;
  9.   if(input=="Vrai" )
  10.   {
  11.     cout << "correct!\n";
  12.   }
  13.    else
  14.   {
  15.     cout << "pas bien!\n";
  16.   }
  17. }




Super! :love: ça fonctionne mais est-ce que tu peux m'expliquer un peu ce que fait string ?

Reply

Marsh Posté le 23-09-2003 à 23:10:14    

et bien c'est un type de la bibliothèque standard qui te permet de gérer les chaines de caractères avec un haut niveau d'abstraction et sans te préocupper des allocations mémoires.
 
un petit lien qui m'avait bien aidé à mes débuts
http://www.msoe.edu/eecs/ce/courseinfo/stl/string.htm
 
c'est loin d'être exhausif, mais ça te conviendra  :hello:

Reply

Marsh Posté le 23-09-2003 à 23:15:08    

Merci bcp :jap:
 
Et quel rapdité dans vos réponses :love:

Reply

Marsh Posté le 24-09-2003 à 01:30:12    

definition d'abstraction TAZ ?  [:ffluff]  
 
 
 
 
-----> []

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed