Ragazzi ho un problema, devo convertire un file csv in file binario: il problema è che non mi scrive mezzo rigo nel file binario mentre riesce a leggere tutti i righi del file csv corrattemente(solo l'ultimo rigo lo legge 2 volte ma vabbe non è un problema grosso per il momento)
struct Admin{
unsigned int IdUtenti;
char Nome[20];
char Cognome[20];
char Username[20];
char Password[20];
char Email[50];
char Cellulare[10];
};
int main(void) {
struct Admin f;
char line[1024];
FILE* ptrUtent;
FILE* destinazione;
ptrUtent = fopen("Utenti.csv", "r");
destinazione = fopen("Utenti.txt","wb+");
fscanf(ptrUtent, "%u;%[^;];%[^;];%[^;];%[^;];%[^;];%[^;];", &f.IdUtenti, f.Nome, f.Cognome, f.Username, f.Password, f.Email, f.Cellulare);
printf("%u %s %s\n",f.IdUtenti,f.Nome,f.Username);
fwrite(&f, sizeof(struct Admin), 1, destinazione);
while(fgets(line, 1024, ptrUtent)) {
printf("1");
fscanf(ptrUtent, "%u;%[^;];%[^;];%[^;];%[^;];%[^;];%[^;];", &f.IdUtenti, f.Nome, f.Cognome, f.Username, f.Password, f.Email, f.Cellulare);
printf("%u %s %s\n",f.IdUtenti,f.Nome,f.Username);
fwrite(&f, sizeof(struct Admin), 1, destinazione);
}
fclose(ptrUtent);
fclose(destinazione);
/*destinazione = fopen("Utenti.txt","rb");
printf("\nlettura\n");
while(!feof(destinazione)){
printf("1");
if(fread(&f,sizeof(struct Admin),1,destinazione)){
printf("%u %s %s\n",f.IdUtenti,f.Nome,f.Username);}
}
fclose(destinazione);*/
return 0;
}
questo è il codice che utilizzo. Grazie in anticipo