[C++] octets d'un fichier dans un string
d.draper
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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 !
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:
- [C++] octets d'un fichier dans un string
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
5 réponses
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
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
Mais tu ne connais pas quelque chose de plus rapide qu'un tableau de char? une classe "secrète" ou autre ? :)
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).
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).
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.
Je pense que le mieux serait d'exposer ton problème et ce que tu veux faire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question