#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NOME 50
#define MAX_COGNOME 50
#define MAX_S 100
#define NOME_FILE "es2_input.txt"
#define TEST_K 24


void bomber_giovane(char nome_file[], int k, char s[]);


int main() {
	char bomber[MAX_S];
	bomber_giovane(NOME_FILE, TEST_K, bomber);
	printf("Ll risultato della ricerca con parametro k=%d è: %s\n", TEST_K, bomber);
	return 0;
}


void bomber_giovane(char nome_file[], int k, char s[]) {
	char nome_tmp[MAX_NOME], cognome_tmp[MAX_COGNOME];
	int eta_bomber=-1, eta_tmp;
	int gol_bomber, gol_tmp; 
	int index;
	FILE* f_input;
	f_input = fopen(nome_file, "r");
	if (f_input == NULL) {  /* Apro il file in sola lettura e verifico che tutto sia andato correttamente, altrimenti segnalo il problema e chiudo il programma */
		perror("ERRORE");
		exit(EXIT_FAILURE);
	}
	while( !feof(f_input) ) {  /* Analizzo il file riga per riga, fino al suo termine */
		index = 0;
		while ( (nome_tmp[index++] = fgetc(f_input)) != ',' && !feof(f_input) );    /* Leggo e memorizzo il nome del giocatore */
		nome_tmp[index-1] = '\0';
		fgetc(f_input);  /* Scarto lo spazio prima dell'inizio del cognome */
		index = 0;
		while ( (cognome_tmp[index++] = fgetc(f_input)) != ',' && !feof(f_input) ); /* Leggo e memorizzo il nome del giocatore */
		cognome_tmp[index-1] = '\0';
		fscanf(f_input, "%d%*c%d", &eta_tmp, &gol_tmp);  /* Leggo e memorizzo eta e gol fatti dal giocatore */
		while ( fgetc(f_input) != '\n' && !feof(f_input) );  /* Porto il cursore all'inizio della nuova riga */
		if (eta_tmp < k) {   /* Se il giocatore attuale è sotto l'età minima considerabile, procedo */
			if (gol_tmp > gol_bomber) {   /* Se il giocatore ha segnato più gol del bomber trovato in precedenza, diventa lui il nuovo bomber */
				eta_bomber = eta_tmp;
				gol_bomber = gol_tmp;
				sprintf(s, "%s; %s", cognome_tmp, nome_tmp);
			}
		}
	}
	if (eta_bomber == -1)   /* Se l'età non è stata modificata nel processo di parsing del file, significa che nessun giocatore ha i requisiti richiesti */
	  strcpy(s, "Nessun giocatore");
	fclose(f_input);
}

