C++ Wie Datein mit varablen Dateinamen erstellen?

UeB

Admiral Special
Mitglied seit
25.05.2002
Beiträge
1.084
Renomée
3
Standort
Stuttgart
Tag auch!

Ich möchte in eine schleife bei jedem druchlauf einen neue datei erstellen mit einen systematsich angeändereten namen. Hier mal mein bisheriger Code:

Code:
			ostringstream pToString; 
			pToString << parameter;
			string tunable = "tunable";
			string parameterValue = pToString.str();
			string tunableFilename = tunable + pamameterValue;
			writefile.open(tunableFilename);
			parameter += 0.25;

bei jedem Durchlauf der Schleife soll dieser Code eine neue Datei öffnen mit den Namen "tunable1" "tunable1.25" "tunable1.5" usw.
leider funktioniert der Code so nicht, da die Funktion .open() als Argument ein const char* erwartet (also ein array aus chars wenn ich das richtig verstehe).
Und eben mit einem string nichts anfangen kann.

Wie mache ich das richtig?
 
leider funktioniert der Code so nicht, da die Funktion .open() als Argument ein const char* erwartet (also ein array aus chars wenn ich das richtig verstehe).
Und eben mit einem string nichts anfangen kann.

Wie mache ich das richtig?
writefile.open (tunableFilename.c_str())
 
danke das funktioniert

aber jetzt ist es ja irgendwie ein bischen komplieziert...
wenn ich es sowieso mit .c_str() in einen array umwandeln muss dann brauch ich doch gar keine c++ strings sondern sollte das gleich ein bischen anders angehn oder?
 
wenn ich es sowieso mit .c_str() in einen array umwandeln muss dann brauch ich doch gar keine c++ strings sondern sollte das gleich ein bischen anders angehn oder?
Jo, man muss immer abschätzen wie man am einfachsten (und ordentlichsten) zum Ziel kommt. Die string-Klasse ist sehr gut zum Manipulieren beliebig langer Strings, sobald allerdings stringstream in Spiel kommt, darf man durchaus den Sinn hinterfragen. Es weiß ja kaum jemand, dass der sich nicht selbst zerstört und wer es weiß, kann sich die korrekte Syntax nicht merken ;)

http://www.troubleshooters.com/codecorn/memleak.htm


Alternativen sind sprintf oder reverse sccanf. Damit bekommt man - unter Mithilfe von string - auch alles sehr elegant hin.
 
Zurück
Oben Unten