Comment écrire un fichier octet par octet à l'aide de c++
Comment écrire un fichier octet par octet à l'aide de c++?
unsigned short array[2]={ox20ac,0x20bc};
si j'ai une valeur hexadécimale 0x20ac comment écrire un octet par octet dans un fichier à l'aide de c++
Ne serait-il pas préférer à l'écrire en une seule fois?
n'est-elle pas besoin de savoir boutisme?
dépend de l'endianness est un problème ou pas.
Comme une réponse à un non-ésotérique question sur StackOverflow, je pense que nous devons nous efforcer d'être incomplet en ce qui concerne la question posée, de sorte que nous devrions inclure tous les détails pertinents pour ceux qui trouvent la question.
out.write(reinterpret_cast<char const*>(array), sizeof array)
vous laisse écrire le sous-jacent d'octets de la représentation.n'est-elle pas besoin de savoir boutisme?
dépend de l'endianness est un problème ou pas.
Comme une réponse à un non-ésotérique question sur StackOverflow, je pense que nous devons nous efforcer d'être incomplet en ce qui concerne la question posée, de sorte que nous devrions inclure tous les détails pertinents pour ceux qui trouvent la question.
OriginalL'auteur Venkatesan | 2013-12-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme ceci:
OriginalL'auteur yasen
Une option, à l'aide de la bibliothèque C++ standard:
Alternativement, vous pouvez facilement créer votre ensemble de données en une seule fois (sans la boucle):
file.write((char*)array, sizeof(array));
merci, fixe.
Maintenant votre premier code d'écrire deux ou quatre octets contenus dans le tableau (le premier octet de chaque élément). Et le one-liner suffit d'avoir
sizeof(array)
, ne sont pas divisés parsizeof(array[0])
.Je ne pourrais pas ouvrir le fichier de sortie.
voulez-vous dire mon affirmation a échoué? Êtes-vous sur de Windows?
OriginalL'auteur Violet Giraffe
Pour ouvrir un fichier de sortie, utilisez ofstream (fichier de sortie de flux, une sous-classe de ostream). Utiliser le ios_base::mode binaire (comme second argument dans le constructeur ou le open() de la fonction membre) si vous n'êtes pas sûr de savoir si votre sortie est lisible au format texte (ASCII).
À écrire qu'un seul octet, utilisez le ostream membre de la fonction "mettre". Pour écrire plus d'un octet à la fois, utilisez la ostream membre de la fonction "write".
Il y a des façons de prendre des types de données (int, par exemple) de plus d'un octet et de les utiliser comme des tableaux d'octets. Cela est parfois appelé type beaucoup les jeux de mots et est décrite dans d'autres réponses, mais méfiez-vous de l'endianness et différentes tailles de types de données (de type int peut être de 2 à 8 octets), qui peuvent être différents sur les différentes machines et les compilateurs.
Pour tester votre sortie, ouvrez-le comme un fichier d'entrée et d'imprimer les octets.
Ou tout simplement utiliser un éditeur hexadécimal comme des gens normaux.
OriginalL'auteur leewz
vous pouvez utiliser la fonction d'écriture ou ostream .
Utiliser la fonction c++ est ostream.
OriginalL'auteur comi