Domanda

Io sono un programmatore per principianti C e attualmente sto lavorando su un progetto per implementare l'algoritmo di rilevamento dell'oggetto Viola Jones utilizzando C. Vorrei sapere come sarei in grado di memorizzare i dati in un array 2-dimensionale a un file chePuò essere facilmente portato e accessibile da diversi file di programma (ad es. main.c, header_file.h ecc.)

Grazie in anticipo.

È stato utile?

Soluzione

Non ci sono abbastanza dettagli per essere sicuri di cosa stai cercando, ma la struttura di base di ciò che vuoi fare è sembrare qualcosa del genere:

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
.

Come è stato suggerito da altri, questo ti lascerà con un file .CSV, che è una scelta piuttosto buona, poiché è facile da leggere e analizzare e puoi aprire il file in Blocco note o Excel e visualizzarlo nessun problema .

Questo sta assumendo che intendessi davvero fare questo con C file I / O, che è un modo perfettamente valido per fare le cose, alcuni sento che è un po 'datato.

Nota Questo lascia una virgola estranea alla fine della linea. Se questo ti infastidisce, è abbastanza facile per fare le condizioni pre e post solo per ottenere virgole dove vuoi. Suggerimento: prevede la stampa della virgola prima dell'entrata all'interno del secondo per il loop, riducendo il numero di voci a cui si sovrappone all'interno per loop e stampare il primo e l'ultimo caso di ogni riga speciale, immediatamente prima e dopo l'interno per loop, rispettivamente. Più difficile da spiegare questo a fare, probabilmente.

qui è un riferimento per il file I / O file in stile C e Ecco un tutorial .

Altri suggerimenti

Senza sapere nulla su quale tipo di dati che stai memorizzando, direi di memorizzare questo come matrice.Dovrai scegliere un delimitatore per separare i tuoi elementi (scheda o spazio sono scelte comuni, aka 'TSV' e 'CSV', rispettivamente) e poi qualcosa per segnare la fine di una riga (nuova linea è una buona scelta qui).

Quindi il tuo file salvato potrebbe sembrare simile a:

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

È inoltre possibile definire il tuo formato come avendo alcuni metadati nella prima riga - il numero di righe e colonne potrebbe essere utile se si desidera pre-allocare la memoria, insieme ad altre informazioni come la codifica dei caratteri.Inizia semplice e aggiungi se necessario!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top