Modificare un File C++

di il
10 risposte

Modificare un File C++

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

10 Risposte

  • Re: Modificare un File C++

    Anyone?
  • Re: Modificare un File C++

    Il tuo programma è un gran papocchio.
  • Re: Modificare un File C++

    Ciao grazie per la risposta.
    Voglio farti una domanda, cosa fa parte di C all'interno di quello che ho scritto?
    Ti faccio sta domanda da ignorante perchè usando il libro della scuola "Informatica in C++ e Java" sto andando un po' in confusione..
    Tutte le funzioni che utilizzo le ho "studiate" dal libro.
    Per quanto riguarda i 2 file è ok, era il modificare lo stesso file il problema
  • Re: Modificare un File C++

    #include <iostream>
    using namespace std;
    cin
    cout

    sono del c++, tutto il resto è C
  • Re: Modificare un File C++

    Quindi il libro deve essere bruciato? Dato che lo definisce C++ D:
  • Re: Modificare un File C++

    NewBie12_ ha scritto:


    Quindi il libro deve essere bruciato? Dato che lo definisce C++ D:
    Sono elementi esistenti anche in C ma non andrebbero preferiti in alcun modo, almeno se non si sa bene cosa si vuole fare.

    In C++ ci sono oggetti del tipo fstream, dall’header fstream invece di FILE
  • Re: Modificare un File C++

    Grazie a tutti per le risposte raga.
    Però mi sapete dire perchè il file rimane inalterato con quello che ho scritto? D:
  • Re: Modificare un File C++

    Perché usare un file in modifica (lettura scrittura) non è facile per un principiante dato che ci sono alcune regole da rispettare che dovresti studiare prima. Bisognerebbe riscrivere quel codice.
  • Re: Modificare un File C++

    Sorry oregon, dove posso trovare qualche informazione su come utilizzare la modalità di lettura scrittura? ad esempio modificare in un determinato punto del file.
  • Re: Modificare un File C++

    Lascia perdere. Il problema è che non puoi modificare il file inserendo nuovi caratteri tra quelli esistenti ma puoi solo sostituirli.
    Il miglior approccio per la modifica è leggere il primo file (anche tutto in memoria se non è grandissimo), elaborarlo e scriverne uno nuovo. Poi si elimina il vecchio e si rinomina il nuovo.
Devi accedere o registrarti per scrivere nel forum
10 risposte