ecrire dans un fichier non formatté avec stl [C++] - C++ - Programmation
Marsh Posté le 31-07-2003 à 14:39:34
T'as un bout de code?
Marsh Posté le 31-07-2003 à 14:40:02
Code :
|
Marsh Posté le 31-07-2003 à 14:40:58
ça marchera jamais ton truc. les seuls chose qu'on peut ecrire en C++ c'est des types de bases
Marsh Posté le 31-07-2003 à 14:41:54
ben oui mais j'ai surchargé le << de hiscore ...
Code :
|
Marsh Posté le 31-07-2003 à 14:43:05
mais moi, je veux la même chose en non formatté, pour pas qu'on puisse bidouiller trop facilement ...
Marsh Posté le 31-07-2003 à 14:44:23
On pourrait avoir les proto des méthodes getName et getScore?
Marsh Posté le 31-07-2003 à 14:44:58
enfin pas surcharger, mais je l'ai defini quoi ...
comme ça je peut faire cout << unHIscore ...
Marsh Posté le 31-07-2003 à 14:45:26
string getName () const {return wName;}
unsigned int getScore () const {return wScore;}
Marsh Posté le 31-07-2003 à 14:45:49
bon ben c'est pas la méthode alors... quelqu'un lui explique
Marsh Posté le 31-07-2003 à 14:45:54
LetoII a écrit : On pourrait avoir les proto des méthodes getName et getScore? |
Il est plein de trous le code donné...
Marsh Posté le 31-07-2003 à 14:47:17
si tu as des E/S textesx avec les << >> et ça ne change quasiment rien de mettre ton fichier en binaire, voir rien du tout selon ton système
Marsh Posté le 31-07-2003 à 14:48:23
ouais ça j'ai bien vu, mais alors, je fais coment pour écrire dans le fichier en mode non formatté ?
il faut pas que je me serve des << >> ?
Marsh Posté le 31-07-2003 à 14:49:27
normalement, je me sert de open, et fopen ...
et la c un open que je veux faire ...
Marsh Posté le 31-07-2003 à 14:50:18
ben vu que tu as du texte essentiellement, trouves toi un système de cryptage, genre des XOR. apres fo faire des write(reinterpret_cast<char*>(&un_type_de_base), sizeof un_type_de_base) (sauf pour les char* evidemment)
Marsh Posté le 31-07-2003 à 14:51:16
ouais mais ça c si je me sert de open ...
mais avec la STL y 'a pas un moyen simple ?
Marsh Posté le 31-07-2003 à 14:52:29
genre si tu voulais ecrire les coordonnées d'un monde 3d, tu l'écrirais pas en mode texte ... tu ferais comment avec la STL ?
Marsh Posté le 31-07-2003 à 14:52:48
Transtype tes chaines en tableaux de flottants et sauve le comme ca
<je sors>
Marsh Posté le 31-07-2003 à 15:10:34
nan mais meme si je ferais pas comme ça, je voudrais bien savoir comment on fait !
je suis curieux !
Marsh Posté le 31-07-2003 à 15:21:32
faut utiliser un flux binaire (ios::binary je crois) et zou c fini.
Marsh Posté le 31-07-2003 à 15:45:10
finalement, j'ai fait comme ça :
Code :
|
je rajoute un petit codage cesar et c parti ...
ouais mais attends, j'ai déjà essayer (debut du message), et il m'écriver tout en formatter...
Marsh Posté le 31-07-2003 à 15:47:57
le ios::binary je crois que ça veux juste dire qu'il t'ecrit pas les CR/LF quand tu as un \n ...
Marsh Posté le 31-07-2003 à 15:48:45
c pe pas celui la mais y a un truc pour dire que ton flux est un flux binaire
Google est ton ami
Marsh Posté le 31-07-2003 à 15:55:12
l'horreur ! tu sait que les ostream ont une méthode write. ça sera portable, bufferisé et bien plus propre. tu devrais pouvoir faire la modif rapidos
Marsh Posté le 31-07-2003 à 16:11:26
Code :
|
me parait mieux (j'ai pas compilé, mais à priori c'est correct
Marsh Posté le 31-07-2003 à 21:12:25
autant s'écrire un petit manipulateur pour une class Foo par exemple (on peut tres bien mettre un relation d'héritage là.
Code :
|
Marsh Posté le 31-07-2003 à 14:37:41
salut,
ben j'ai essaye avec un ofstream avec le flag ios::binary , mais il m'écrit quand meme tout en formatte ...
je suis paume là ... une petite indication ?
merci