Più o meno; la prima riga può essere impiegata come header, ma non è strettamente necessario; ogni riga successiva poi rappresenterebbe un record.
codice:
Nome, Cognome, Età
Mario, Rossi, 25
Matteo, Artusi, 19
Pinco, Pallino, 63
Padre, Pio, 90
La prima riga verrebbe letta con una fscanf e i risultati verrebbero confrontati con i valori attesi per gli header attesi. In caso di header non corrispondente, il file verrebbe rigettato. Quindi bisogna leggere tutti gli i record, sempre con la fscanf.
codice:
char nome[250], cognome[250], buffer[20];
int eta;
if(fscanf(FileInput, "%250s, %250s, %20s", nome, cognome, buffer)!=3)
{
/* file non valido */
}
if(stricmp(Nome, "Nome") || stricmp(Cognome, "Cognome") || stricmp(Buffer, "Età"))
{
/* file non valido */
}
while(!feof(FileInput))
{
if(fscanf(FileInput, "%250s, %250s, %d", nome, cognome, &eta)!=3)
{
/* errore di lettura */
}
/* qui hai il record caricato correttamente in nome, cognome e eta */
}
Per il resto la scrittura è una banalità.