Text Datei benenen wie in der Eingabe
-
Ich möchte in C etwas so Programmieren das er zb
char name[20]
cin>>name;und die variable "name" dann hier einfügt
Klassen = fopen("/*hier soll der inhalt vom "name" stehen*/.txt" ,"w");
wie kann ich dies umsetzen ?
-
Indem du einen std::string an Stelle deines C-Strings nimmst, den einliest und das ".txt" dranhängst.
Und dann bitte einen std::fstream öffnen und kein C-Filehandle.Natürlich müsstest du die Eingabe erst noch auf Sonderzeichen, und so weiter abklappern, damit du keinen Müll in den Dateinamen schreibst.
-
Könntest du mir nen Quellcode dazu schreiben, da ich leider von meinen fähigkeiten noch nicht so weit bin std::strings etc. auskenne. arbeiten tuhe ich mit c , nur ein und ausgabe mache ich mit c++ weil diese schneller und einfacher ist.
-
string name; cin>>name; name+=".txt"; // Anhängen der Datei-Endung ofstream datei(name.c_str());// und die entsprechende Datei öffnen(die Datei kannst du genauso nutzen wie du auch cin/cout verwendest)
-
Behappy schrieb:
Könntest du mir nen Quellcode dazu schreiben,
Zu dem Thema lies dir mal bitte den Link in meiner Signatur durch.
Du solltest dich entscheiden ob du C oder C++ machen möchtest - in C müsstest du ein genügend großes char-Array erstellen, den Input darein packen, die Länge rausfinden (strlen) und dann die 4 Zeichen hintendran schreiben. Auch nicht so schwer.
So oder so gilt: Mach es selbst, du kriegst hier nur Tips und Feedback, damit du beim lernen voran kommst. Nur selbermachen macht klug.
-
Und falls du es trotzdem in C machen willst, schau mal hier:
http://www.cplusplus.com/reference/clibrary/cstring/strcat/
-
Erstmal danke an Cstoll, da hab ich noch eine Frage unzwar wofür ist das
datei in "ofstream datei(name.c_str())"und zu pumuckl
c++ benutz ich nur cin und cout weil die einfacher sind als printf und scanf.
Und zum selber lernen, wenn ich Befehle nachgeschmissen bekomme die ich noch nicht kenne dann würd ich auch gerne wissen wie diese eingesetzt werden.edit: danke wxskip, dass guck ich mir nochmal an.
-
Behappy schrieb:
Erstmal danke an Cstoll, da hab ich noch eine Frage unzwar wofür ist das
datei in "ofstream datei(name.c_str())""datei" ist der Name der Variablen, die du später verwenden kannst, um Daten zu schreiben. Das ist die C++ Entsprechung zu deinem fopen()-Ansatz.
Ansonsten solltest du dir mal ein Buch nehmen, in dem gutes C++ erklärt wird. Das hilft dir mehr, als C mit ein paar C++ Features zu vermischen

-
Behappy schrieb:
Erstmal danke an Cstoll, da hab ich noch eine Frage unzwar wofür ist das
datei in "ofstream datei(name.c_str())"und zu pumuckl
c++ benutz ich nur cin und cout weil die einfacher sind als printf und scanf.
Und zum selber lernen, wenn ich Befehle nachgeschmissen bekomme die ich noch nicht kenne dann würd ich auch gerne wissen wie diese eingesetzt werden.In C++ gibt es verschiedene Streams, die du alle sehr ähnlich verwenden kannst. std::cout ist eine vordefinierte Variable vom Typ std::ostream (Output Stream). Genauso ist std::cin eine Variable vom Typ std::istream. std::ofstream ist ein Typ, mit dem du in Dateien schreiben kannst. Genau so gibt es std::ifstream. Wenn du schreiben und lesen willst, brauchst du std::fstream. Um nun etwas in eine Datei schreiben zu können, musst du eine Variable vom Typ std::ofstream anlegen, im Beispiel von CStoll hier die Variable "datei". Diese Variable wird einer Datei zugeordnet, indem du ihr den Dateinamen übergibst. Da sie einen Dateinamen vom Typ const char * verlangt und name eine Variable vom Typ std::string ist, musst du über c_str() ihren const char * "holen".
-
Behappy schrieb:
c++ benutz ich nur cin und cout weil die einfacher sind als printf und scanf.
Dann bist du im C-Forum besser aufgehoben, denn hier wirst du haufenweise C++-Dinge "nachgeschmissen" bekommen. Allerdings sind fstreams genauso einfach wie cin und cout und damit einfacher als C-Dateioperationen. C++-Strings sind häufig einfacher als C-Strings usw.
Und zum selber lernen, wenn ich Befehle nachgeschmissen bekomme die ich noch nicht kenne dann würd ich auch gerne wissen wie diese eingesetzt werden.
Nachgeschmissen wird hier eigentlich nichts. Wenn wir Dinge verwenden, die dir nicht geläufig sind, sollten Bücher, Tutorials und Onlinereferenzen die erste Anlaufstelle sein. Google hilft da auch gern weiter. Wenn du damit nicht weiterkommst, kannst du gerne Fragen stellen, die dir noch nicht klar sind. Aber einfach den Code hinzuwerfen bringt dir nichts und uns auch nicht, weil du dann für das nächste Problem zum selben Thema wieder ähnliche Fragen stellst. Das Forum ist kein Ersatz für Eigeninitiative.