2011-09-15 4 views
1

j'ai un gros fichier binaire que je produis en écrivant un tableau de nombres flottants au format binaire.binaire conversion en texte dans linux

Maintenant, comment puis-je convertir simplement ce fichier binaire en texte?

+0

Quel format binaire avez-vous utilisé? –

+0

Je viens d'ouvrir un fichier binaire en utilisant ofstream out (bla, ios :: out | ios :: binaires) et écrit en elle out.write ((char *) blah, taille); .... quel format est-ce? – Kiarash

+0

Rendez votre objectif plus clair, s'il vous plaît. Voulez-vous relire les valeurs et produire une sortie formatée a '' printf'? Dans ce cas, un script Perl ou PHP 'unpack()' serait probablement beaucoup plus facile que C++. –

Répondre

7

utiliser la commande UNIX, avec l'option -t f4 pour lire le fichier en tant que 4 octets valeurs à virgule flottante. L'option -A n est également utile pour éviter d'imprimer les décalages de fichiers. Voici la sortie d'un fichier d'exemple que j'ai créé.

/tmp> od -A n -t f4 b.dump 
     -999.876  -998.876  -997.876  -996.876 
     -995.876  -994.876  -993.876  -992.876 
     -991.876  -990.876  -989.876  -988.876 
     -987.876  -986.876  -985.876  -984.876 
0

Vous devrez inverser le processus.

  1. Relire le fichier dans un tableau de flottants.
  2. Imprimer l'utilisation du tableau printf() ou votre fonction io préférée.

Toute autre approche sera laide et douloureuse; Pour ne pas dire que ce n'est pas laid pour commencer.