School-Coding-Cpp/sfusi/es8_file.cpp

74 lines
2.4 KiB
C++

/*
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
}
}