Pregunta

Soy un programador de principiantes de C y actualmente estoy trabajando en un proyecto para implementar el algoritmo de detección de objetos de Viola Jones usando C. Me gustaría saber cómo podría almacenar datos en una matriz de 2 dimensiones a un archivo quePuede ser fácilmente portado y accedido por diferentes archivos de programas (por ejemplo, main.c, encabezado_file.h, etc.)

Gracias de antemano.

¿Fue útil?

Solución

No hay un detalle suficiente para asegurarse de lo que está buscando, pero la estructura básica de lo que quiere hacer es mirar algo así:

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

Como lo ha sido sugerido por otros, esto lo dejará con un archivo .CSV, que es una opción bastante buena, ya que es fácil de leer y analizar, y puede abrir su archivo en Bloc de notas o Excel y verlo sin problemas .

Esto le asume que realmente quiso hacer esto con C E / S, que es una forma perfectamente válida de hacer las cosas, algunas solo sienten que está un poco anticuado.

Nota Esto deja una coma extraña al final de la línea. Si ese insecto, es lo suficientemente fácil como para hacer las condiciones previas y publicadas para obtener solo comas donde desee. Sugerencia: implica imprimir la coma antes de la entrada dentro del segundo para el bucle, reduciendo el número de entradas que ingresa para el interior para el bucle, e imprimir el primer y último caso de cada fila especial, inmediatamente antes y después del interior de bucle, respectivamente. Más difícil de explicar eso para hacer, probablemente.

Aquí hay una referencia para el archivo E / S de estilo C, y Aquí hay un tutorial .

Otros consejos

Sin saber nada sobre qué tipo de datos que está almacenando, diría que para almacenar esto como una matriz.Tendrá que elegir un delimitador para separar sus elementos (TAB o espacio son opciones comunes, aka 'TSV' y 'CSV', respectivamente) y luego algo para marcar el final de una fila (la nueva línea es una buena opción aquí).

Entonces, su archivo guardado puede parecer algo así:

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

También puede definir su formato que tiene algunos metadatos en la primera línea: la cantidad de filas y columnas puede ser útil si desea preestablecer la memoria, junto con otra información como la codificación de caracteres.¡Comience simple y agregue según sea necesario!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top