Textdatei mit aktuellem Datum im Namen abspeichern
-
Hallo,
ich schreibe gerade ein Programm, welches gewisse Daten auswerten soll und diese dann in eine txt Datei speichern soll. Da diese Auswertung öfters im Monat durchgeführt wird, will ich das die Datei folgenden Namen trägt: "Auswertung-[Jahr]-[Monat]-[Tag].txt"Wenn ich das so mache:
#include <time.h> .... string Name; .... ofstream InDateiSpeichern; Name="Auswertung"; Name+="-"; Name+=tm.wYear; Name+="-"; Name+=tm.wMonth; Name+="-"; Name+=tm.wDay; Name+=".txt"; InDateiSpeichern.open(Name);kommt folgende Fehlermeldung:
Error: no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::open(std::string&)'wenn ich nur schreibe
InDateiSpeichern.open("Auswertung.txt");funktioniert es.
wenn ich mir "Name" in der Konsole Anzeigen lasse kommen irgendwelche kryptischen Zeichen raus und wenn "Name" den Wert "Auswertung.txt" hat, kommt der gleiche Fehler.
Wie kann ich den Fehler verhindern?
Was muss ich tun Damit die Datei auch wirklich"Auswertung-[Jahr]-[Monat]-[Tag].txt" genannt wird?Vielen Dank für Eure Hilfe
-
Hi,
probier mal: Name.c_str()
-
http://www.cppreference.com/wiki/io/open
open verlangt ein const char* als Argument:
inDatei.open(Name.c_str());
-
dann steht aber immer noch gülle im string,
teste mal das hier an:ofstream out; stringstream sstr; sstr << "convert0r-" << 0 << "-" << 0 << "-" << 7 << ".txt"; out.open(sstr.str().c_str()); if ( out == NULL ) cout << "schade!" << endl; else cout << sstr.str() << " opened!" << endl;nen string ojekt brauchste nicht direkt.
gruß,
c.
-
Danke, die Idee von convert0r hat mir am besten geholfen.
Für alle mit ähnlichem Problem:
Um "stringstream" zu verwenden, muss vorher <sstream> includiert werden