Ciao a tutti ragazzi, il prof. mi ha assegnato un esercizio:
Ho un file che contiene il codice di una pagina HTML, ordinalo facendo in modo che tutti i tag siano allineati a sinistra
Esempio:
<html>
<title>Ciao Mondo</title>
<body><p>Prova</p></body
</html>
Diventerà:
<html>
<title>
Ciao Mondo
</title>
<body>
<p>Prova
</p>
</body
</html>
Praticamente avevo pensato di leggere un carattere, se era diverso da "<" lo rileggeva e se trovava "<" lo cancellava, aggiungeva \n, e poi aggiungeva il carattere stesso.
Stessa cosa se trovava ">", lo rileggeva e se trovava un qualsiasi carattere lo cancellava, aggiungeva \n e poi il carattere stesso.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char nome1[50]; //Directory File
char carattere; //Caratteri del File
FILE *f1;
cout<<"File Input: ";
cin>>nome1;
f1 = fopen(nome1, "r+");
if(f1!=NULL)
{
while(!feof(f1))
{
carattere = fgetc(f1);
if(carattere != '<')
{
carattere = fgetc(f1);
if(carattere == '<')
{ //Caso: ....<tag>
fputs("\b", f1);
fputs("\n", f1);
fputc(carattere, f1);
}
}
if(carattere == '>')
{
carattere = fgetc(f1);
if(carattere != '\n')
{ //Caso: <tag>...
fputs("\b", f1);
fputs("\n", f1);
fputc(carattere, f1);
}
}
}
fclose(f1);
}
else
{
cout<<"Impossibile Trovare il File!\n";
}
}
Praticamente il file rimane inalterato