//CreaFileHtml2.c /* Questo programma crea un file html con una tabella con i valori delle potenze del 2 e del 3 da 0 a 10. Assomiglia molto all'esempio precedente. La differenze sta nel corpo dove dobbiamo scrivere i tag opportuni per produrre la tabella */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define NOME_FILE_HTML "index2.html" #define MIO_TITOLO "Una tabella scritta da un programma in C" #define HTML_TOP "<html>\n<head>\n<title>" \ MIO_TITOLO \ "</title>\n</head>\n" #define BODY_START "<body bgcolor=\"#FFFFFF\">\n" #define HTML_BOTTOM "</body>\n</html>" int main() { FILE *Fp1; int i; Fp1 = fopen(NOME_FILE_HTML, "w"); if (Fp1==NULL) { printf("Impossibile aprire il file %s\n", NOME_FILE_HTML); exit(-1); } // scriviamo l'header e l'inizio del body fprintf(Fp1, "%s", HTML_TOP); fprintf(Fp1, "%s", BODY_START); // scriviamo la tabella fprintf(Fp1, "%s", "<b>Potenze del 2 e del 3 (da 0 a 10)</b><br /><br />\n"); fprintf(Fp1, "<table border=\"3\" cellpadding=\"10\">\n"); // Una piccola novita': il tag <th> permette di specificare // il nome di una riga o colonna. Identico a <td>, semplicemente // il browser evidenzia il testo automaticamente. // Prova ad utilizzarlo al porsto di <td> // ATTENZIONE: // Con il carattere \ e' possibile continuare la costante stringa // sulla riga successiva. Ogni spazio in piu' viene effettivamente messo // nella stringa, quindi NON dobbiamo indentare ma partire da inizio riga. fprintf(Fp1, "<tr>\n\ <td></td>\n\ <td>2</td>\n\ <td>3</td>\n\ </tr>\n"); for(i=0; i<=10; i++) { // Un secondo modo di spezzare una costante stringa su piu' righe // e' quello di dividerla in molte costanti stringa con il carattere " // Tra una costante stringa e l'altra NON METTERE LA VIRGOLA! fprintf(Fp1, "<tr>\n" "<td>%d</td>\n" "<td bgcolor=\"FFFF00\">%d</td>\n" "<td bgcolor=\"0099AA\">%d</td>\n" "</tr>\n", i, (int)pow(2.0,(double)i), (int)pow(3.0,(double)i)); } // Chiudo la tabella fprintf(Fp1, "</table>\n"); // scriviamo la parte conclusiva della pagina fprintf(Fp1, "%s", HTML_BOTTOM); // chiudo il file fclose(Fp1); return 0; }