dateinamen mit ".html" verbinden



  • Hallo,

    in meinem Studium erlene ich nun die Programmiersprache C. In meinem Programm kann der User die Anzahl der zu erstellenden .html Dateien angeben und ihnen auch einen Dateinamen geben. Meine Frage ist jetzt, wie ich die Datei mit dem eingegebenen Dateinamen abspeichern kann?

    Hier mein bisheriger Quellcode (Variablen sind natürlich schon angelegt):

    ...
    for(int i=1; i<= anzahlDateien; i++)
    {
    printf("Geben Sie den Namen der Datei ein!\n");
    scanf("%s", &dateiname);
    FILE* fp; // Zeiger auf Datenstrom der Datei
    fp = fopen("%s.html","w"); <= Hier komme ich nicht weiter
    ...
    }
    ...



  • 1. Das Formatkennzeichen "%s" in scanf erfordert keinen Adress-Operator & bei der Speichervariable dateiname, da Du hoffentlich dateinamen entweder als

    char dateiname[100];
    

    oder etwas Vergleichbares deklariert hast.
    2. Das Arbeiten mit solchen Formatkennzeichen ist auch einige wenige Funktionen beschränkt. Dabei ist die grundlegende Funktionsweise in etwa so:

    funktion ("Formatstring", Variablen, auf deren Datentyp sich der Formatstring bezieht);
    

    Weder kennt fopen Formatkennzeichen, noch wäre "w" ein passender Variablenname, der irgendwo oben deklariert wäre.
    fopen braucht als Funktionsparameter im Grunde einen Dateinamen und den Modus, wie die Datei geöffnet werden soll.
    Wenn in dateiname bisher z.B. "lustigeDatei" steht, kannst Du das .html "ranhängen", indem Du von der strcat-Funktion Gebrauch machst:

    strcat (dateiname, ".html");
    

    Natürlich sollte sichergestellt sein, dass im char-Array dateiname Platz für die zusätzlichen 5 Zeichen ".html" ist.
    Jetzt stünde in dateiname "lustigeDatei.html" und - vorausgesetzt, sie existiert und wird im Programmpfad gefunden und darf geöffnet werden - die Datei sollte sich öffnen lassen.



  • Danke!!! 🙂


Anmelden zum Antworten