Voeg deze code aan de bovenkant van het bronbestand dat zal het lezen van de CSV
. 6
Maak een bestand object, dat wordt gelezen in de gegevens , met behulp van de volgende code :
fILE
* pInput ;
7
Maak een personage buffer groot genoeg om een te houden regel van het bestand tegelijk . Vanwege beperkingen van de taal , de meest eenvoudige manier om dit te doen is te verklaren een karakter array van een voldoende grote omvang , zoals bij :
# define BUFFER_SIZE 1024
char buf
[ BUFFER_SIZE ] ;
8
Open het bestand met de volgende code , en toewijzen aan uw eerder gemaakte fILE object :
pInput = fopen
( "bestandsnaam ", "r " ) op Twitter
9
lezen in een lijn van het bestand met de volgende code :
fgets
( buf , sizeof ( buf ) , pInput ) op Twitter
Parse 10 het CSV gebruik de functie " strtok " . Maak een nieuwe tekenreeks om te wijzen op de tokens , en het met de gegevens van de lijn te lezen in bovenstaande :
char * tok = strtok ( buf , " , " ) op Twitter 11
Zet de ontvangen token in de juiste data . Met behulp van het voorbeeld regel:
1 , " test" , 3.45
zetten de gegevens in " tok " om een geheel getal met de volgende code :
row.col1 = atoi ( tok ) ;
12
Voor volgende leest uit dezelfde lijn , pass " strtok " a NULL parameter in plaats van de buffer snaar lees je in vóór :
tok = strtok ( NULL , " , " ) op
vervolgens zetten de token om de juiste data type. Met behulp van het voorbeeld lijn
1 , " test" , zou 3.45
De parsing code voor een enkele lijn zijn :
char
* tok = strtok ( buf , " , " ) ;
row.col1 = atoi ( tok ) ;
tok = strtok ( NULL , " , " ) ;
row.col2 = tok ;
tok = strtok ( NULL , " , " ) ;
row.col3 = atof ( tok ) ;
13
Doe dit voor alle vermeldingen op elke lijn van de CSV . De functie " strtok " zal blijven om de gegevens tussen komma waarden geven totdat het loopt uit de gegevens in de buffer , op welk punt het NULL zal terugkeren . Dit geeft aan dat u klaar bent met de lijn .