2010-10-06 8 views
0

Je crée une application dont l'entrée est un fichier C ayant un tableau (créé avec bin2C.exe), le segment de code du C le fichier est: -Comment lire/écrire un tableau C stocké dans un fichier texte créé avec l'utilitaire bin2C

unsigned int MyArray[] = { 0x00000001,0x00000002,0x00000005 ...}; 

maintenant j'ai besoin de lire ce tableau sous forme de fichier texte et d'écrire sa valeur dans un tableau int. Ensuite, je dois modifier ce tableau et le remettre au fichier texte afin que le résultat final ressemblerait à ceci: -

unsigned int MyArray[] = { 0x39481212,0x33943121,0x3941212 ...}; 

S'il vous plaît laissez-moi savoir comment puis-je faire cela en C/VisualC++ que mon application est en VC++ avec MFC?

Regards, Vikas

Répondre

0

entrée

ouvrir le fichier (fopen) en mode texte et lire les lignes (fgets et sscanf)

matrice de stockage

vous ne pouvez pas avoir un tableau avec une taille non spécifiée. Vous devez utiliser soit une limite de taille et de laisser certains éléments non utilisés, ou utiliser malloc et les amis et la gestion du stockage pour le réseau manuellement

modifier

utilisation +, -, * et d'autres opérateurs ainsi que sqrt , abs, sin et d'autres fonctions disponibles dans la bibliothèque standard pour masser les données (vous pouvez créer des fonctions de votre propre aussi)

mis en arrière

Il est préférable d'écrire dans un nouveau fichier et si tout allait bien, supprimer l'ancien fichier et renommer le nouveau ... alors ouvrir le nouveau fichier (fopen avec « w » pour le mode paramètre) au début lors de l'ouverture de l'entrée; si l'entrée n'est pas la ligne du tableau, écrivez-la directement (fputs), sinon écrivez la ligne 'massaged'; lire et écrire toutes les autres lignes.

(C++?) Avec MFC

Ce qui précède est pour C. Il pourrait fonctionner pour C++ avec ou sans MFC

Cordialement

__gVirt_NP_NN_NNPS<__ Amusez-vous!

+0

Merci, mais je ne comprends vraiment pas ce que cela signifie quand vous dites utiliser les fonctions de la bibliothèque? – Viks

+0

La bibliothèque standard définit de nombreuses fonctions déclarées dans quelques en-têtes documentés par la documentation de votre compilateur. Par exemple, 'abs' est déclaré dans' '; 'sqrt' et de nombreuses autres fonctions utiles sont déclarées dans' '(http://opengroup.org/onlinepubs/007908775/xsh/math.h.html) – pmg

0

Je pense que le meilleur moyen était de lire et d'utiliser les fonctions de fprintf/sprintf pour obtenir et mettre les données en tant qu'int dans le fichier.