[C++] octets d'un fichier dans un string

Fermé
d.draper Messages postés 2 Date d'inscription dimanche 18 septembre 2011 Statut Membre Dernière intervention 18 septembre 2011 - 18 sept. 2011 à 22:53
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 19 sept. 2011 à 12:38
Bonjour à tous !
Malgrès mes recherches, je suis toujours bloqué.

En fait, je ne sais pas comment mettre les octets d'un fichier quelconque dans une variable string.
Oublions la méthode d'un tableau de char, car traduire des caractères en octets selon la langue utilsée ne me parait
pas judicieux (portabilité, endianess, etc).


Bref, existe-t-il une classe, une fonction ou quoi que ce soit en c++ qui permet de mettre le contenu binaire ("0 et 1")
d'un fichier dans une variable string (sans passer par du texte)? Et dans les autres langages de programmation?Est-ce
possible en java?


Si vous avez un bout de code expliqué,
une fonction ou quoi que ce soit, je prends!!!!




Merci d'avance pour vos réponses pédagogiques !
A voir également:

5 réponses

KX Messages postés 16737 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 18 mai 2024 3 015
Modifié par KX le 18/09/2011 à 23:16
Les tableaux de char ne sont pas dépendants de la langue de l'utilisateur, il n'y a donc pas de problème de portabilité, et je ne pense pas non plus d'endianness, donc il n'y a aucune raison de ne pas utiliser istream::get et ostream::write même pour du contenu binaire.

En Java c'est un petit peu différent car il y a de l'endianness avec les char, mais c'est pour ça que l'on manipule des tableaux de byte pour contourner le problème, donc pareil, il n'y a aucune raison de se priver de InputStream.read et OutputStream.write
La confiance n'exclut pas le contrôle
0
d.draper Messages postés 2 Date d'inscription dimanche 18 septembre 2011 Statut Membre Dernière intervention 18 septembre 2011
Modifié par d.draper le 18/09/2011 à 23:16
Mais tu ne connais pas quelque chose de plus rapide qu'un tableau de char? une classe "secrète" ou autre ? :)
0
KX Messages postés 16737 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 18 mai 2024 3 015
18 sept. 2011 à 23:21
C'est extrêmement puissant un tableau de char ^^
Pour le Java tu peux utiliser des Buffered Streams qui permettent d'accélérer un peu les choses sur la machine virtuelle, mais en C++ je ne pense pas que ce soit nécessaire vu que c'est un programme compilé la "bufferisation" doit être géré directement par la machine (au moins en écriture).
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
19 sept. 2011 à 12:33
Je ne comprends rien à ton problème. Un char est un entier, il ne prend le sens de caractère qu'à l'occasion de certaines fonctions. En plus, en général, un char fait 1 octet. Lorsqu'on ouvre un fichier, il n'y a pas d'information de langue propre à ce fichier (enfin, si ce fichier est suffisamment simple) tu lis des entier par paquet que tu stockes dans ta variable, le codage en caractère ne s'effectue que lors de l'affichage. D'ailleurs, c'est le souci de pas mal de gens qui écrive leur textes avec des caractères étendus et qui ne comprennent pas pourquoi ils s'affichent différemment dans la console (tout simplement car on traite des chiffres avant de traiter des caractères).

Je pense que le mieux serait d'exposer ton problème et ce que tu veux faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu n'arrive pas à mettre les octets d'un fichier dans un string ? Un octet déjà ça fait 8 bits... Dans un seul string ça m'étonnerait que ça rentre.
-1
KX Messages postés 16737 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 18 mai 2024 3 015
19 sept. 2011 à 12:35
La capacité d'un string c'est std::string::max_size(), qui est de l'ordre de 4 Gio !!!
Alors, si, on peut mettre tout un fichier dans un string, mais l'intérêt parait limité.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
19 sept. 2011 à 12:38
Je me demande s'il n'y avait pas une blague la dessous : "mettre 8 bit es dans une string" HAHAH ! (pff....)
0