/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 21/03/2025
Orario di inizio: 22.06 PM
Orario di fine:	22.21 PM

Funzione che crea un file html con:
   - il tuo_cognome in <h1> chiesto in input;
   - lo sfondo con un colore RGB casuale;
   - il valore del colore RGB come <h2>.
*/

#include <iostream>
#include <cstdlib> // Libreria per le funzioni 'fgetc()', 'fopen()', etc.

#define SIZE 100 // Definiamo la capacità della stringa che conterrà il cognome

using namespace std;

// Prototipo della funzione che crea il file della pagina HTML
void fileHTML(const char * nomeFile);

// Prototipo della funzione che modifica la pagina HTML
void riempiFileHTML(const char * nomeFile, char * cognome);

int main(void) {
	char cognome[SIZE]; // Stringa che conterrà il nostro cognome
	
	cout << "Inserisci il tuo cognome: ";
	fgets(cognome, SIZE, stdin); // Chiediamo in input il nostro cognome
	cout << endl << "Controllare il file .html (o aggiornalo se gia' aperto)." << endl;
	
	// Chiamata della funzione che crea il file della pagina HTML
	fileHTML("file.html");
	
	// Chiamata della funzione che modifica la pagina HTML
	riempiFileHTML("file.html", cognome);
	
	return 0;
}

// Definizione della funzione che crea il file della pagina HTML
void fileHTML(const char * nomeFile) {
	FILE * fp = fopen(nomeFile, "wt"); // Apriamo il file

	if (fp != NULL) { // Se troviamo il file
		int chr; // Inizializziamo il carattere

		while ((chr = fgetc(fp)) != EOF) { // Leggiamo il file carattere per carattere
			cout << (char)chr; // Stampiamo carattere per carattere
		}

		fclose(fp); // Chiudiamo il file
	} else { // Se non troviamo il file
		perror("Error (source)"); // Ci manda un messaggio di errore
	}
}

// Definizione della funzione che modifica la pagina HTML
void riempiFileHTML(const char * nomeFile, char * cognome) {
	FILE * fp = fopen(nomeFile, "wt"); // Apriamo il file

	if (fp != NULL) { // Se troviamo il file
		fputs("<html><head></head><style>body {background-color: #8fa2ff;}</style><body>", fp); // Struttura base di una pagina HTLM
		fprintf(fp, "<h1>%s</h1>", cognome); // Modifichiamo il titolo della pagina HTML in base a quello che riceviamo in input
		fputs("<h2>#8fa2ff;</h2></body></html>", fp); // Fine della struttura base della pagina HTML

		fclose(fp); // Chiudiamo il file
	} else { // Se non troviamo il file
		perror("Error (source)"); // Ci manda un messaggio di errore
	}
}