Wie kann ich viele html Seiten mit C++ generieren?



  • Hallo,
    Wie im Titel bereits die Frage steht, möchte ich mit C++ viele HTML Seiten erstellen. Angenommen ich möchte 200 HTML Seiten mit anderem Namen erstellen.
    Die 200 Namen befinden sich in einer Textdatei.
    Ich möchte jetzt Zeile für Zeile den Namen in der Textdatei auslesen, diesen Namen in einem String speichern und anschließend ein HTML dokument generieren, dass diesen Namen trägt, sodass ich am Ende 200 HTML Dokumente mit dem Namen habe, den zur Zeit der Wert des Strings war. Kann man soweit nachvollziehen was ich möchte?

    Ich weiß, dass das hier ein absolut triviales Thema und man das ganze mit etwa 8 Zeilen Code generieren kann. Allerdings auch nur, wenn man das Know How hat. Meine Programmierkenntnisse sind nicht gut genug und ich schaffe es einfach nicht, also wäre jemand so freundlich mir zu helfen?
    Vielen Dank

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main () {
    
    ifstream datei("C:\\File\\liste.txt");
    string fileName;
    string line;
    
     while (getline(datei, line)) {
    
    fileName = line;
    fileName += ".html";
        ofstream createFile;
        createFile.open(fileName.c_str(), ios::app);
        createFile.close();
    }
    
    	return 0;
    
    }
    


  • Habs geschafft, hier mein Code dazu:

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    
    int main () {
    
    	ifstream datei("C:\\File\\liste.txt");
     	string line;
    
     while (getline(datei, line))
    
     {
    
    	ostringstream filename;
    
    filename << line << ".html";
    ofstream out(filename.str().c_str());
    
    }
    
    	getchar();
    
    	return 0;
    
    }
    

  • Mod

    ofstream out(line + ".html");
    

    Falls der Compiler sich beschwert, sag ihm, gefälligst C++11 oder neuer zu benutzen.



  • Ich bin wohl doch noch nicht fertig.
    Wie kann ich denn jetzt realisieren, dass bei jedem erstellten HTML Dokument auch etwas in das Dokument geschrieben wird. Die haben zwar jetzt alle einen Namen, allerdings ist der Inhalt leer.


  • Mod

    Du musst halt was reinschreiben.

    Diese Antwort ist sicherlich nicht hilfreich, aber die Art deiner "Frage" (sofern man das so nennen kann), lässt kaum eine hilfreichere Antwort zu. Du musst schon beschreiben, was du für Schwierigkeiten hast, damit man dir helfen kann.



  • Nun was mir fehlt ist das Wissen über die "Syntax", die es mir erlaubt in jedes Dokument, dass gerade erstellt wird, etwas reinzuschreiben. Zum Beispiel soll in jedem HTML Dokument jetzt das Wort "Hallo" stehen. Wie sieht der Code dazu aus?
    Ich habe mir jetzt ein paar Videos zur streambibliothek angeschaut, allerdings fehlt es mir an Verständnis. Was ich brauche ist der fehlende Codeschnipsel und eine kurze Erklärung was das passiert, damit ich es endlich begreife.


  • Mod

    Du hast doch offensichtlich schon Erfahrung mit Streams, du hast sie schließlich in den hier gezeigten Codes bereits benutzt. Ansonsten steht das auch im ersten(!) Kapitel so ziemlich jedes C++-Buchs. Dateistreams verhalten sich in keiner Weise anders als andere Streams.

    Zum Beispiel:

    out << "Hallo";   // oder put oder write. Je nach Bedarf.
    


  • @SeppJ Ich danke dir für deine Hilfe!

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    
    int main () {
    
    	ifstream datei("C:\\ZENSIERT\\liste.txt");
     	string line;
    
     while (getline(datei, line))
    
     {
    
    		ofstream out((line + ".html").c_str());
            out << "hallo";
    }
    
    	getchar();
    
    	return 0;
    
    }
    


  • Arrrgh kann bitte ein Mod eben den Dateipfad entfernen? Danke 😃


Log in to reply