Question

Je suis un programmeur C débutant C et je travaille actuellement sur un projet pour implémenter l'algorithme de détection d'objet Viola Jones à l'aide de C. J'aimerais savoir comment je serais en mesure de stocker des données dans un tableau 2 dimensionnel à un fichier quiPeut être facilement porté et accédé par différents fichiers de programme (par exemple Main.c, Header_File.h, etc.)

Merci d'avance.

Était-ce utile?

La solution

Il n'y a pas assez de détails pour être sûr de ce que vous recherchez, mais la structure de base de ce que vous voulez faire est de regarder quelque chose comme ceci:

open file.csv for writing
for(iterate through one dimension of the array using i)
{
for(iterate through the other dimension of the array using j)
   { 
   fprintf(yourfilehandle,"%d,",yourvalue[i][j]);
   }
fprintf(yourfilehandle,"\n");
}
close your file

Comme cela a été suggéré par d'autres personnes, cela vous laissera avec un fichier genévoodiceCode, qui est un très bon choix, car il est facile de lire et d'analyser, et vous pouvez ouvrir votre fichier dans le bloc-notes ou Excel et le voir sans problèmes. .

Cela suppose que vous pensez vraiment faire cela avec C dossier d'E / S, qui est un moyen de faire parfaitement valable, certains pensent que c'est un peu daté.

note que cela laisse une virgule étrangère à la fin de la ligne. Si cela vous insigne, il est suffisamment facile de faire les conditions préalables et postales pour que vous ne soyez que des virgules. Indice: il implique d'imprimer la virgule avant l'entrée à l'intérieur du second pour la boucle, ce qui réduit le nombre d'entrées que vous iTER à l'intérieur de la boucle et imprimez le premier et le dernier cas de chaque rangée spéciale, immédiatement avant et après l'intérieur pour boucle, respectivement. Plus difficile d'expliquer que faire, probablement.

Voici une référence pour le fichier d'E / S de style C, et Voici un tutoriel .

Autres conseils

Sans rien savoir sur quel type de données que vous stockez, je dirais que vous diriez de stocker cela comme une matrice.Vous devrez choisir un délimiteur pour séparer vos éléments (onglet ou espace sont des choix courants, alias «TSV» et «CSV», respectivement), puis quelque chose à marquer la fin d'une ligne (nouvelle ligne est un bon choix ici)..

Donc, votre fichier enregistré pourrait ressembler à quelque chose comme:

10 162 1 5
7 1 4 12
9 2 2 0

Vous pouvez également définir votre format comme ayant des métadonnées dans la première ligne - le nombre de lignes et de colonnes peut être utile si vous souhaitez pré-allouer de la mémoire, ainsi que d'autres informations telles que le codage de caractères.Commencez simple et ajoutez si nécessaire!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top