Aggiungi questo codice all'inizio del file di origine che sarà la lettura del CSV
. 6
Creare un oggetto file , che leggere i dati , utilizzando il seguente codice :
FILE * pInput ;
7
Creare un buffer di caratteri abbastanza grande da contenere un riga del file alla volta . A causa di limitazioni del linguaggio , il modo più semplice per farlo è quello di dichiarare un array di caratteri di dimensioni sufficientemente importanti , come con :
# define BUFFER_SIZE 1024
char buf [ BUFFER_SIZE ] ;
8
Aprire il file con il seguente codice , e assegnarlo al proprio oggetto File creato in precedenza :
pInput = fopen ( "nomefile ", "r " ) per Pagina 9
Read in una riga del file utilizzando il seguente codice :
fgets ( buf , sizeof ( buf ) , pInput ) economici 10
analizzare il CSV utilizzando la funzione " strtok " . Creare una nuova stringa di caratteri per indicare il token , e inizializzarla con i dati dalla linea lette in precedenza :
char * tok = strtok ( buf , "," ) economici 11 < p > Converti il token ricevuto nei dati appropriati. Utilizzando la linea di esempio :
1 , "test" , 3.45
convertire i dati contenuti nel " tok " per un numero intero utilizzando il seguente codice :
row.col1 = atoi ( tok ) ;
12
Per la successiva legge dalla stessa linea , passare un parametro NULL al posto della stringa di buffer si legge nella prima " strtok " :
tok = strtok ( NULL , "," ) per
Quindi , convertire il token per il tipo di dati appropriato . Utilizzando l'esempio linea
1 , "test" , 3.45
Il codice di analisi per una singola riga sarebbe:
char * tok = strtok ( buf , " , " ) ;
row.col1 = atoi ( tok ) ;
tok = strtok ( NULL , "," ) ;
row.col2 = tok ;
< p > tok = strtok ( NULL , "," ) ;
row.col3 = atof ( tok ) ;
13
Fate questo per tutte le voci su ogni riga del CSV . La funzione " strtok " continuerà a fornire i dati tra valori virgola fino all'esaurimento dei dati nel buffer , a quel punto si ritorna NULL . Questo indica che hai finito con la linea .