Dateiendung bestimmen
-
char outfile[50]; sprintf(outfile, "%s.txt", Dateiname);
Geht aber auch mit Stringstreams, musst du halt selber nach google'n
-
std::string Dateiname; cout << "Bitte geben Sie einen Dateinamen ein."; cin >> Dateiname; std::ofstream Ausgabe(Dateiname+".txt");
-
EnERgYzEr schrieb:
std::string Dateiname; cout << "Bitte geben Sie einen Dateinamen ein."; cin >> Dateiname; std::ofstream Ausgabe(Dateiname+".txt");
So gehen dann also Stringstreams...
-
EnERgYzEr schrieb:
std::string Dateiname; cout << "Bitte geben Sie einen Dateinamen ein."; cin >> Dateiname; std::ofstream Ausgabe(Dateiname+".txt");
Jetzt muss die Konkatenation nur noch in Klammern gesetzt und ein .c_str() daran
gehangen werden, dann funktioniert es auch ;).mfg
v R
-
irgendwie blicke ich da gerade nicht mehr durch, wo müssen die klammern hin?
besten dank schon mal.
-
Morgen,
naja, hab ich in meinem Satz aber gesagt
std::ofstream Ausgabe((Dateiname+".txt").c_str());
mfg
v R
-
sorry, ich bin blutjunger anfänger...
hat jetzt aber geklappt, vielen dank!
-
Wie kann ich die Datei denn jetzt nochmal öffnen um einen Text daran anzuhängen?
std::ofstream Ausgabe(Dateinname,ios::app);
klappt nicht, weil der Bezeichner nicht vergeben ist. Ich muß also die Endung txt dran hängen. Wie kriege ich das hin? Bei
std::ofstream Ausgabe(Dateinname.txt,ios::app);
gibt es auch immer einer Fehlermeldung.
-
Tag,
std::ofstream Ausgabe((Dateiname+".txt").c_str(), ios_base::app);
mfg
v R
-
Gast221212 schrieb:
EnERgYzEr schrieb:
std::string Dateiname; cout << "Bitte geben Sie einen Dateinamen ein."; cin >> Dateiname; std::ofstream Ausgabe(Dateiname+".txt");
So gehen dann also Stringstreams...
quatsch...
#include <sstream> //für stringstreams #include <iostream> using namespace std; int main(void) { string name; name = "datei"; ostringstream test; test << name << ".txt"; cout << test.str(); }
ausgabe:
datei.txt
dasselbe geht natürlich auch fürs "einlesen" aus einem string.
dabei gilt:
[ C ] [ C++ ] sprintf() ostringstream sscanf() istringstream --- (kombiniert) stringstream
die operatoren & die funktionsweise von stringstreams sind ähnlich wie filestreams oder iostreams.
-
So wird jetzt jedesmal eine neue Datei erstellt, ich möchte den Text aber an die erste hängen
-
wenn ich dich korrekt verstanden habe:
ofstream out("datei.txt",ios::ate);
-
dragonball-l schrieb:
So wird jetzt jedesmal eine neue Datei erstellt, ich möchte den Text aber an die erste hängen
Hast du meinen Code eigentlich mal ausprobiert? Das app steht fuer append.
mfg
v R
-
ja was denn nun? ios::ate oder ios::app? oder bewirken die dasselbe?
-
Lars Hupel schrieb:
ja was denn nun? ios::ate oder ios::app? oder bewirken die dasselbe?
Ja, dich meinte ich auch gar nicht. Du stands nur zufaellig zwischen meinem
Post und dem letzten des OPmfg
v R
-
aha
aber kannst du mir trotzdem auf meine frage antworten?
-
Lars Hupel schrieb:
aha
aber kannst du mir trotzdem auf meine frage antworten?
Die Datei wird trotzdem neugeschrieben. Man spart sich allerdings einen seekp-
Aufruf.mfg
v R
-
[quote="virtuell Realisticer"]
dragonball-l schrieb:
So wird jetzt jedesmal eine neue Datei erstellt, ich möchte den Text aber an die erste hängen
Hast du meinen Code eigentlich mal ausprobiert? Das app steht fuer append.
ja, habe ich.
also ich erstelle erst meine ausgabe datei und schreibe dann in diese.wenn ich jetzt probiere auf diese datei mit deinem Quelltext zuzugreifen wird eine neue Datei erstellt, also es wird nix an die alte gehängt.
-
Zeig mal deinen Quelltext bitte.
mfg
v R
-
mach ich morgen, hab den text auf´m rechner der nicht im netzwerk ist...besorge mir morgen einen stick!