Programm zur Dateiausgabe
-
Also Folgendes:
Ich möchte ein Programm in C++ schreiben, mit dem ich eine Datei ausgebe und jedes mal, wenn ich das Programm erneut durchlaufe, wird die neue Ausgabe in einer neuen Datei mit dem Dateinamen "bla_i+1.txt".
Ich bin noch ganz am Anfang, weswegen ich noch nicht die meiste Ahnung habe. Also wenn ich Fragen bezüglich des Inhaltes im Quelltext habe, bitte nicht böse sein!Also meine Idee war, das i+1 mit einer Schleife zu verlinken, welche bei jeder Exekution des Programms den Namen um 1 höher setzt.
Aber dann habe ich keine Ahnung, wie man das mit einander verbindet.#include <iostream>
#include <fstream>
#include <string>
#include <time.h>using namespace std;
int main()
{
int i = 104;
string str;
string s;
fstream txtd;// Datei schreiben txtd.open("Was auch immer du eingibst, wird hier drinstehen.txt", ios::out | ios::trunc); txtd << "Hallo " << s << endl; txtd.close(); // Datei auslesen und anzeigen txtd.open("Was auch immer du eingibst, wird hier drinstehen.txt", ios::in); while(!txtd.eof()) { getline(txtd, s); cout << s << endl; } txtd.close(); cin.get();
}
Das habe ich bisher geschrieben.
Danke schon mal für Eure Hilfe!
JTR
-
Fun with streams:
#include <cstdlib> // EXIT_SUCCESS, EXIT_FAILURE #include <string> // std::string, std::getline() #include <sstream> // std::ostringstream #include <fstream> // std::ofstream #include <iostream> // std::cin, std::cout, std::cerr int main() { for (long long unsigned i = 1;; ++i) { // i von 1 in 1erschritten hochzählen, dabei std::ostringstream filename{ "bla_" }; // dateinamen aus prefix "bla_" filename << i << ".txt"; // und dem wert von i zusammenbasteln. // Bedienungsanleitung ausgeben: std::cout << "Everything you input will be written to \"" << filename.str() << "\".\n" "To end input enter EOF (Ctrl-Z on windows, Ctrl-D on unix).\n" "To quit the program enter EOF at the beginning of the first line.\n\n"; // in text alle zeilen zusammenstoppeln std::string text; // lesen solange std::cin in keinem fehlerzustand wie zB EOF ist und an text anhaengen for (std::string line; std::getline(std::cin, line); text += line + '\n'); // Fehlerzustand von std::cin loeschen std::cin.clear(); // wenn nichts in text steht hat der user sofort EOF eingegeben -> programm beenden if (!text.length()) return EXIT_SUCCESS; // sonst datei zum schreiben oeffnen und checken ob sie geoeffnet werden konnte std::ofstream file{ filename.str() }; if (!file.is_open()) { std::cerr << "Couldn't open \"" << filename.str() << "\" for writing :(\n\n"; return EXIT_FAILURE; } // text in die Datei schreiben file << text; } }
-
Kannst du mal durch denn Quelltext gehen, und erläutern, was die einzelnen Funktionen usw machen?
Das wäre echt lieb!
-
@JTR666 habe ich