probleme de classe - C++ - Programmation
Marsh Posté le 11-10-2004 à 20:27:44
l'indentation est en option chez toi?
pourquoi tu fais pas une méthode dédiée à l'addition?
c'est quoi ce while(1) tout pourri?
[Taz]atof c'est mauvais, utilises les stringstreams[/Taz]
Marsh Posté le 11-10-2004 à 20:31:16
rhaa le getresult, c'est bof bof, ça te plairait pas de pouvoir faire des conversion (implicites si tu le veux) en float pat simple cast ?
newcalc -> écris un constructeur
Marsh Posté le 11-10-2004 à 20:48:24
Aille.
c_str() te renvoie un const char *. C'est un pointeur vers une zone mémoire qui appartient à ta chaîne nb. Il est donc hors de question de faire ça:
Code :
|
Surtout que stringstream existe...
Marsh Posté le 11-10-2004 à 20:57:25
sinon mshome, ton gros problème ça va être l'algorithme. Tu ferais bien de faire une version simple en pré/post-fixé et gérer ça avec une pile. C'est un exercice très commun
Marsh Posté le 11-10-2004 à 20:59:52
Lam's a écrit : Aille.
|
je remplace par quoi alors ?
Marsh Posté le 11-10-2004 à 21:00:50
par
#include <sstream>
istringstream is(nb);
nb >> f; // pareil qu'avec cin
Marsh Posté le 11-10-2004 à 21:02:33
Lam's a écrit : Aille.
|
je sais que c'est mal en c++, mais quand je fais
char tab[100] = "hello";
j'initialise bien mon tableau avec un const char * ?
Marsh Posté le 11-10-2004 à 21:04:39
non, c'est un sucre synthaxique qui équivaut à { 'h', 'e', 'l', 'l', 'o', '\0' ... }
Marsh Posté le 11-10-2004 à 21:13:07
Juste une vérification cris, on est bien d'accord que
Code :
|
n'a pas le même comportement que:
Code :
|
ok ?
Dans son cas, comme il n'utilise pas une valeur immédiate, il effectue une recopie inutile (et potentiellement dangereuse, vu qu'il ne prend pas en compte la taille de la chaîne avant d'allouer sa destination).
Marsh Posté le 11-10-2004 à 21:15:51
oui
char titi[] = "hello"; // voila un tableau qui contient
'h', 'e', 'l', 'l', 'o', '\0' donc sizeof titi == 6
const char * titi = "hello"; // voila un pointeur qui contient l'adresse de la chaine litterale "hello" qui est un tableau constant
j'y suis?
Marsh Posté le 11-10-2004 à 21:17:52
Exactement. Et le point où je voulais en venir d'ailleurs, c'est que la plupart des compilos te permettent de n'allouer qu'une seule copie de "hello". Donc on aurait titi==toto dans cet exemple.
Marsh Posté le 11-10-2004 à 21:20:23
ok merci !
en fait je l'avais plus ou moins remarquer en regardant le code généré
Marsh Posté le 13-10-2004 à 13:37:55
Taz a écrit : par |
c'est quoi f ?
et comment s'utlise istringstream ?
Marsh Posté le 13-10-2004 à 14:56:19
MsHome a écrit : c'est quoi f ? |
RTFM
Marsh Posté le 13-10-2004 à 17:47:08
les docs sont ecrites en etranger
Marsh Posté le 13-10-2004 à 17:48:54
MsHome a écrit : les docs sont ecrites en etranger |
va te pendre, je te file un exemple et t'en as rien secouer ...
Marsh Posté le 13-10-2004 à 18:20:32
MsHome a écrit : les docs sont ecrites en etranger |
Arrête l'informatique
Marsh Posté le 15-10-2004 à 19:34:52
plz expliquez moi comment ca ca marche et je vous laisse tranquilles:
istringstream is(nb);
nb >> f;
merci
Marsh Posté le 15-10-2004 à 21:19:44
MsHome a écrit : plz expliquez moi comment ca ca marche et je vous laisse tranquilles: |
Aaahhh, la magie de google
mais comme je suis sympa, je vais te donner le compte-rendu de la conversation entre moi et Taz sur les stringstreams
Citation : Masklinn |
Citation : Taz |
Citation : Masklinn |
Citation : Taz |
Citation : Masklinn |
Citation : Taz |
Citation : Masklinn |
Citation : Taz |
Citation : Masklinn |
Citation : Taz |
Résultat?
je me suis mis dessus sérieusement, j'ai fini par comprendre comment ca marchait et maintenant je sais à peu près les utiliser.
Taz m'aurait donné la réponse, j'aurais fait mon truc et 2 jours plus tard je m'en serais plus souvenu
Marsh Posté le 15-10-2004 à 21:24:44
Comme on dit: si un homme a faim, apprend lui à pêcher au lieu de lui donner un poisson
Marsh Posté le 16-10-2004 à 09:44:16
j'ai vraiement pas le temps de passer ma vie a lire une doc que je ne comprends pas (mon niveau d'anglais est faible je suis que en 1ere) , je programme ce truc pour le plaisir et j'ai juste besoin de ce truc une seule fois dans mon prog.
Si tu sais pourquoi ne pas me dire en une ligne comment on utilise stringstream pour convertir une chaine en float ?
Marsh Posté le 16-10-2004 à 10:09:43
Si t'as pas le temps maintenant, je me demande bien quand est-ce que tu l'auras. Si tu t'orientes vers la prog C++, les stringstream, tu les verras plus d'une fois dans ta vie. Ca vaut donc le coup de faire l'effort. (et accessoirement, savoir lire/parler l'anglais aussi) (et franchement, une intro en français, ça doit pouvoir se trouver)
Marsh Posté le 16-10-2004 à 10:59:40
bon la j'en suis a ca :
Code :
|
ca compile sans erreurs mais getresult() retourne toujours 0
Marsh Posté le 16-10-2004 à 12:07:13
tu vas pas faire comme tout le monde et commencer par une classe Point
Marsh Posté le 16-10-2004 à 12:19:59
tiens j'ai justement un exo à faire avec des opérations comme ca. du genre (3 4 +)
Marsh Posté le 16-10-2004 à 20:42:32
moi c'est plutot un truc comme les caculettes style ti 82 >
1+2*3/2-4 mais bon je galere deja avec les +
Marsh Posté le 11-10-2004 à 20:27:05
salut je suis au debut d'un projet de calculette et j'ai commencé ma classe en y implementant les additions , mais deja la ca ne marche pas , et je ne comprends pas
voici mon code (je compile avec g++) :
merci de votre aide
---------------
http://sylvainm.chez.tiscali.fr mon site qu'il est bieng