#include <stdio.h>
#include <stdlib.h>
#include "file.h"
#define DIMENSIONE_RIGAFILE 8
#define DIM 5
#define MAX_LUNG_FILE 20
struct voliaerei
{
char nomeCompagnia[DIM];
int oraPartenza;
int gate;
int numeroPasseggeri;
int OreVoloFatte;
int Carburante;
};
int leggifile(char* nome_file)
{
FILE *filePTR;
char riga_del_file[DIMENSIONE_RIGAFILE];
struct voliaerei array_votialunni[DIM];
int apertura;
int i;
filePTR = fopen(nome_file,"r");
if(filePTR)
{
apertura=0;
printf("Errori apertura: %d\n",apertura);
printf("\n\nIl file contiene:\n\n");
while(!feof(filePTR))
{
fgets(riga_del_file, DIMENSIONE_RIGAFILE, filePTR);
if(riga_del_file==0)
{
printf("File vuoto\n");
}
else{
printf("%s",riga_del_file);}
}
printf("\n\n");
}
else
{
apertura=1;
printf("Errore apertura: %d",apertura);
}
fclose(filePTR);
return apertura;
}
void chiedi_nome_file(char* nome_file) {
char* estensione_file = NULL;
printf("\nInserire il nome del file: ");
scanf("%s", nome_file);
if (nome_file == NULL) {
printf("\n\n*** Errore nell'acquisizione del nome del file. ***\n\nUscita in corso...\n\n");
free(nome_file);
exit(EXIT_FAILURE);
}
if (strlen(nome_file) > MAX_LUNG_FILE-1) {
printf("\n\n*** Errore: nome file troppo lungo. ***\n\nUscita in corso...\n\n");
free(nome_file);
exit(EXIT_FAILURE);
}
estensione_file = &nome_file[strlen(nome_file)-4];
if (strcmp(estensione_file, ".txt") != 0) {
printf("\n\n*** Cambiare l'estensione del file in .txt ***\n\nUscita in corso...\n\n");
free(estensione_file);
free(nome_file);
exit(EXIT_FAILURE);
}
}
void apri_file(char* nome_file, char* mod) {
ptr = fopen(nome_file, mod);
if (ptr == NULL) {
printf("\n\n*** Errore nell'apertura del file. ***\n\nUscita in corso...\n\n");
free(ptr);
exit(EXIT_FAILURE);
}
}
void chiudi_file(){
if(fclose(ptr) != 0) {
printf("\n\n*** Errore nella chiusura del file. ***\n\nUscita in corso...\n\n");
free(ptr);
exit(EXIT_FAILURE);
}
}
Io con queste funzioni ho aperto e letto il file e il relativo contenuto ma non saprei come inserire nella struct, le informazioni lette