Datei speichern mit einer bestimmten Endung



  • Guten Tag,

    ich möchte mich mal etwas mit der Welt von C++ auseinandersetzen.

    Jetzt hab ich durch das lesen im Netz einen Code für ein Programm gefunden, welches auch soweit läuft.

    Spiele nun damit etwas herum und möchte es anpssen/verändern.

    Am Anfang kommt mal eine Abfrage, wie die Datei heißen soll.
    Gibt man da einen Namen an, so wird dieser auch angelegt, aber ohne Endung wie z.B. .html oder so.

    Kann man es auch gleich so einstellen, daß das Programm automatisch die Endung .html z.B. hinzufügt?

    Der Code

    printf("Wie soll die Datei heissen :\n");
    scanf("%s",file_name);
    fflush(stdin);

    oder liege ich da ganz falsch?

    mfg Bauli



  • Hi,

    Zunächst einmal solltest du sscanf und printf in C++ nicht nutzen, sie gelten dort als obsolet. Nutze cout und cin, diese sind auch typsicher und bieten weitere Vorteile.

    Code wäre also:

    #include <iostream>
    #include <string>
    #include <fstream>
    
    int main()
    {
        std::string filename;
        std::cout << "Wie soll die Datei heißen?" << std::endl;
        std::cin >> filename;
        filename += ".html";
        std::ofstream ofs(filename);
        ofs << "Inhalt.";
        return 0;
    }
    


  • Hallo,

    std::ofstream ofs(filename);
    

    geht, glaube ich, erst nach dem neuen Standard. Nach dem aktuell gültigen Standard geht

    std::ofstream ofs(filename.c_str());
    


  • Danke für die schnellen Antworten.

    Hab das jetzt mal ausprobiert. Leider meldet mir schon der Compiler Probleme mit den Zeilen.

    std::ofstream ofs(filename);
    ofs << "Inhalt."; 😞



  • Braunstein schrieb:

    Hallo,

    std::ofstream ofs(filename);
    

    geht, glaube ich, erst nach dem neuen Standard. Nach dem aktuell gültigen Standard geht

    std::ofstream ofs(filename.c_str());
    

    Versuch das hier.



  • Dann sieh Dir noch mal den Post von Braunstein genau an.



  • Habe ich auch schon probiert. Kommt ebenso ein Fehler.

    Müßte ich bei diesem Code noch etwas beachten/einfügen. Bin absolut neu und hab keine Plan. Finde leider auch nicht das was vielleicht als AHA Effekt bezeichnen würde.

    Benutze Dev - C++

    Fehlermeldung ist "variable `std:ofstrem ofs`has initializer but incomplete type

    Danke mal für die Antworten



  • Du solltest zwei Doppelpunkte benutzen und ofstream schreiben, aber ich glaube, das waren jetzt Abtippfehler. Hast Du den Code denn bei Dir neugetippt oder C&P meines Codes gemacht mit Braunsteins Änderung?



  • Läuft wenn ich es in einen eigenen Baustein gebe.

    Ändere ich die Zeilen im gesamten Code funktioniert es nicht.

    Bin leider noch nicht auf die Verschachtelung draufgekommen. 😕





  • In C++ gibt es den Begriff Baustein nicht. Meinst Du Quellcodedatei?

    Ich verstehe nicht so ganz, was Du anders gemacht hast, aber das mit int(Pi*10^14) s Hinweis ist auf alle Fälle gut.


Anmelden zum Antworten