Pb avec std::istream::read - C++ - Programmation
Marsh Posté le 21-09-2003 à 22:04:59
remarques : les conventions veulent que les identificateurs de variables ne commencent pas par des majuscules
stream.read(static_cast<char *>(&this->NbRows), sizeof this->NbRows);
me parait une écriture plus adéquouate et moi source d'erreur, plus flexible aux modifications de code (si tu change le type de NbRows, genre en unsigned long, faut tout refaire)
Marsh Posté le 21-09-2003 à 22:14:16
Taz a écrit : remarques : les conventions veulent que les identificateurs de variables ne commencent pas par des majuscules |
J'ai toujours entendu qu'il y avait plusieurs conventions. Est-ce qu'il y en a une qui est la "règle" ? peux-tu me donner le lien ?
Taz a écrit : stream.read(static_cast<char *>(&this->NbRows), sizeof this->NbRows); |
C'est vrai, je vais le changer
Sinon, j'ai cette fois le pb avec la fonction write.
Voici le message d'erreur:
reinterpret_cast from `const int*' to `char*' casts away const (or volatile) |
Or, ma donnée membre n'est pas constante !
Marsh Posté le 21-09-2003 à 22:17:34
aucun lien
mais this doit l'être ! donc faut rajouter un const_cast.
Marsh Posté le 21-09-2003 à 22:25:11
Effectivement, ça compile :
Code :
|
C'est parce que la fonction membre où j'utilise le wrtie est déclarée constante, donc this est constant
Merci encore.
Marsh Posté le 22-09-2003 à 05:00:34
je ne comprend pas le code, elle fait quoi cette fonction ?
Marsh Posté le 22-09-2003 à 07:47:20
xiluoc a écrit : je ne comprend pas le code, elle fait quoi cette fonction ? |
elle fait que tu vas acheter un bouquin
Marsh Posté le 22-09-2003 à 09:45:51
Taz a écrit : elle fait que tu vas acheter un bouquin |
- computer science tapestry (Exploring Programming And Compuer Science with c++)
- Schaum's outline Data structures with c++ (j ai bien celui la)
Marsh Posté le 22-09-2003 à 14:59:35
Y'aurait pas une possibilité d'utiliser un opérateur de flux ( >> )?
EDIT : Le reste j'ai effacer parce que j'avais mis une grosse clownerie
Marsh Posté le 22-09-2003 à 15:12:00
namewithn0man a écrit : Y'aurait pas une possibilité d'utiliser un opérateur de flux ?
|
ce qui écrit un truc du genre 0xdeadbeef, très utile
namewithn0man a écrit : J'avais un pb de cast pour l'écriture dans un fichier (texte cette fois-ci). Je m'en suis sorti avec cet opérateur (le cast est automatique) |
namewithn0man a écrit : En plus c'est du vrai code pur C++ ANSI authentique(les méthodes de transtypage sont trop souvent propriétaires (genre itoa( : 100% MS)) |
meme si itoa existait en C++, je te dirai que ne pas l'utiliser
namewithn0man a écrit : |
il semblerait bien
Marsh Posté le 22-09-2003 à 15:14:40
Taz a écrit : |
zut quelqu'un est passé par là avant que je me rende compte de mon incompétence en relisant mon post... Braf, quand on sait pas, faut s'écraser et pas faire le malin
Marsh Posté le 22-09-2003 à 15:16:35
namewithn0man a écrit : |
je l'aurais pas dit comme ça, mais effectivement, quand on sait pas, mieux vaut ouvrir ses yeux, poser des questions et ne pas laisser galoper son esprit de débutant (voir le résultat plus haut )
tout est ok ici ?
Marsh Posté le 22-09-2003 à 15:20:37
Citation : |
et bien si je persiste
Code :
|
sans cast explicite
EDIT: et en effet tout est ok. Je croyais avoir une solution, j'ai voulu participer pour une fois - pour rendre service... Jusque là j'ai quasiment toujours trouvé les réponses à mes questions en me promenant sur ce forum, j'ai voulu être fairplay et participer un peu.
Marsh Posté le 22-09-2003 à 15:29:11
Il n'empêche que t'as beau être peut-être bon en C++, mais un pack de battlecruisers y fait pas long feu contre des carriers ! (cf. nos signatures)
Marsh Posté le 22-09-2003 à 15:40:07
dans starcraft le battlecruiser il fait "good day commander" quand on cliquette dessus
(toi ca viendrait pas plutot du all your base are belong to us ?)
Marsh Posté le 22-09-2003 à 15:43:24
ça vous est jamais arrivé de vous faire griller d'une minute ?
Marsh Posté le 21-09-2003 à 21:52:37
Bonjour,
J'ai une classe avec le membre suivant :
Dans une fonction membre, j'ai écrit le code suivant :
Je compile avec gcc et j'ai l'erreur suivante :
invalid static_cast from type `int*' to type `char*'
Pourquoi ?
Comment utiliser la fonction read sur mon entier ?
Message édité par Enidan le 21-09-2003 à 21:53:24