Namenerstellung per Console als .txt datei
-
Also ich will folgendes machen,
ich hab ungefähr 100 Namen, und die Namen sollen alle als text datei abgespeichert werden, die text datei soll dann wie der Name heissen und in der text datei soll der name auch geschrieben werden.
Ich hab da mal rumprobiert aber des find ich viel zu umständlich.#include <iostream>
#include <fstream>int main ()
{
std::ofstream outfile;
outfile.open("Name der Datei");
outfile << "Name der Datei" << std::endl;
outfile.close();
return 0;
}Oder ist es irgendwie möglich eine text datei auszulesen und die darin gespeicherten namen automatisch abspeichern zu lassen ?
-
Weiß nicht ob ich das jetzt richtig verstanden habe....
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string file; while( cin >> file, file != "STOP" ) { ofstream out( file.c_str(), ios::out ); out << file; out.close(); } cout << "Alle Dateien wurden erstellt!" << endl; return 0; }oder
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string file; ofstream out; while( cin >> file, file != "STOP" ) { out.open( file.c_str(), ios::out ); out << file; out.close(); } cout << "Alle Dateien wurden erfolgreich erstellt!" << endl; return 0; }Man kann natürlich noch prüfen ob das Öffnen bzw Anlegen der Datei erfolgreich war.
Lg freeG
-
galexand schrieb:
Oder ist es irgendwie möglich eine text datei auszulesen und die darin gespeicherten namen automatisch abspeichern zu lassen ?
Ja, das nennt man in der Fachsprache ein Programm.
Wo hapert es bei dir denn?
-
[quote="fr33g"]Weiß nicht ob ich das jetzt richtig verstanden habe....
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string file; ofstream out; while( cin >> file, file != "STOP" ) { out.open( file.c_str(), ios::out ); out << file; out.close(); } cout << "Alle Dateien wurden erfolgreich erstellt!" << endl; return 0; }Kann ich das Programm jez so erweitern dass es eine text datei ausließt und die darin enthaltenen Namen jeweils als text datei abspeichert ?
-
Ja kannst du, da ich ja gerade soooo eine Langeweile habe hier der Code
:#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string file; ofstream out; ifstream in( "Datei-mit-Namen.txt", ios::in ); while( in >> file, !in.eof() ) { out.open( file.c_str(), ios::out ); out << file; out.close(); } return 0; }Hoffe konnte dir helfen.
Lg freeG
-
Schau dir am besten mal streams an. (http://www.cplusplus.com/reference/iostream/fstream/)
fstream datei; datei.open("Dateiname.Endung", ZUGRIGFFSOPTION[h]1[/h])1:
ios::out = Öffnen zum IN die Datei schreiben
ios::in = Öffnen um AUS der Datei zu lesenHier einmal mein Beispielcode. (Hoffe die Kommentare sind schlüssig und der Code okay, lerne ja selber noch ;-))
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { fstream datei1; fstream datei2; string name; datei1.open("Datei1.txt",ios::out); // Datei wird schreiben geöffnet datei1 << "Text geht rein!"; datei1.close(); datei1.open("Datei1.txt", ios::in); // Datei wird zum lesen geöffnet datei2.open("Namen.txt", ios::out); // Datei für die Namen wird geöffnet while(!datei1.eof()) { datei1 >> name; // Nun musst du überprüfen ob das Wort ein Name ist // if (name == gesucht) datei2 << name; } datei1.close(); // Wieder schließen datei2.close(); // dito return 0; }
-
Hat alles soweit geklappt, so wie ich es wollte.
Danke
-
Ich hab ein Problem, unzwar bekomme ich diese meldung in der letzten Zeile wenn ich das Programm Kompilieren will. expected `}' at end of input
Ich lerne erst seit kurzem C++ und hab keine ahnung was damit gemeint ist.#include <iostream> #include <fstream> #include <conio.h> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { char filename[128]; ifstream file; char zeile[1024]; cout << "Name der gesuchten Person eingeben: " << flush; cin.getline(filename, 127); file.open(filename, ios::in); if (file.good()) { file.seekg(0L, ios::beg); while (! file.eof()) { file.getline(zeile, 1024); cout << zeile << endl; } } else { cout << "Person nicht bekannt ! " << endl; } { int buchstabe; int wdh = 1; cout << "Nach weiteren Personen suchen ? j/n" << endl; cin >> buchstabe; while ( wdh <= buchstabe ) { cout << wdh << endl; wdh++; } getch(); }
-
Na, was diese geheimnisvolle Meldung wohl bedeuten mag
.Guck dir deine Klammerung doch mal an! Fällt dir da nichts auf? Guck vor allem mal, wo bei dir die Klammer von der main-Funktion schließt.
edit: Ich mach es dir mal leichter, indem ich deinen Code einmal vernünftig einrücke. Es bietet sich an, einen Editor zu benutzen, der dies automatisch für einen macht und einem auch bei der Klammerung hilft:
#include <iostream> #include <fstream> #include <conio.h> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { char filename[128]; ifstream file; char zeile[1024]; cout << "Name der gesuchten Person eingeben: " << flush; cin.getline(filename, 127); file.open(filename, ios::in); if (file.good()) { file.seekg(0L, ios::beg); while (! file.eof()) { file.getline(zeile, 1024); cout << zeile << endl; } } else { cout << "Person nicht bekannt ! " << endl; } { int buchstabe; int wdh = 1; cout << "Nach weiteren Personen suchen ? j/n" << endl; cin >> buchstabe; while ( wdh <= buchstabe ) { cout << wdh << endl; wdh++; } getch(); }
-
Das bedeutet das dein Klammern nicht passen.
Mach mal die { in Zeile 36 weg und rücke die Klammer bei Zeile 34 gescheit.