char* verbinden
-
Hallo,
ich bin dabei mir ein Programm zu schreiben, welches mir mehrere htm-Dateien für eine Bildergalerie erstellt. Das Problem is beim erstellen der Dateien soll immer eine Nummer im Dateinamen drin sein (z.B. Bild1.htm, Bild2.htm,...) und dadurch nehme ich char* um es zu realisieren, aber ich bekomme die Nummer leider nicht in den char* rein.
Hier mein Quelltext
void dateiSchreiben(string titel) { char buff[80]; int anzahl = 10; char* dateiname; for (int zaehler=1; zaehler<=anzahl; zaehler++) { dateiname = "C:/Bild" + zaehler + ".htm"; // hier liegt der Fehler // char* dateiname = "C:/Bild.htm"; ofstream outfile(dateiname); if (outfile.good()) outfile << titel << endl; for (int i = 0; i <= 10; i++) outfile << "Das ist Zeile #" << (i + 1) << endl; outfile.close(); }Für jedes bißchen Hilfe bin ich dankbar!
Sascha
-
char* ein pointer auf ein char. Du kannst keine int-Größen addieren.
Ich würde es so machen:stringstream dateiname; for(int zaehler=1; zaehler<anzahl; zaehler++){ dateiname <<"C:/Bild" <<zaehler <<".htm" } ofstream outfile(dateiname.str().c_str()); //...
-
mit sprintf..
#include <stdio.h> . . . void dateiSchreiben(string titel) { char buff[80]; int anzahl = 10; char dateiname[255]; //es muss genug Platz sein :) for (int zaehler=1; zaehler<=anzahl; zaehler++) { //die stdio.h muss eingebunden werden sprintf( dateiname, "C:/Bild%d.htm", zaehler ); ofstream outfile(dateiname); if (outfile.good()) { outfile << titel << endl; for (int i = 0; i <= 10; i++) outfile << "Das ist Zeile #" << (i + 1) << endl; } outfile.close(); } }Hoffe ich konnte helfen.
PS: die Klammersetzung der "outfile.good()" abfrage war falsch..
Steffen