file nach Verwendung löschen
-
Hallo Zusammen
Kann ich ein Textfile, das ich in einem ersten Schritt mit Daten fülle (ca. 10000 Zeilen untereinander) und in einem zweiten Schritt wieder öffne für Berechnungen, überschreiben?
ofstream myFile ("test.txt", ios::app|std::ios::out);Also ich möchte die Daten aus test.txt für Berechnugen verwenden. Danach brauche ich dieses file nicht mehr. Aber ich brauche für verschiedene Werte immer wieder ein neues file. Da wäre es gut, wenn ich immer dieses test.txt überschreiben könnte (in einem loop).
So wie es jetzt ist, werden die Daten ergänzt.Ja und noch eine Frage:
Darf ichofstream myFile ("test.txt", ios::app|std::ios::out);global definieren?
Vielen Dank
Nijntje
-
nijntje schrieb:
Kann ich ein Textfile, das ich in einem ersten Schritt mit Daten fülle (ca. 10000 Zeilen untereinander) und in einem zweiten Schritt wieder öffne für Berechnungen, überschreiben?
Ja, aber wieso sollte man so etwas tun wollen? Hast du dir das wirklich gut überlegt?
ofstream myFile ("test.txt", ios::app|std::ios::out);[...]
So wie es jetzt ist, werden die Daten ergänzt.app = append = anhängen
Nie blind abschreiben. Immer verstehen ,was man tut.
Ja und noch eine Frage:
Darf ichofstream myFile ("test.txt", ios::app|std::ios::out);global definieren?
Ja, aber wieso sollte man so etwas tun wollen? Hast du dir das wirklich gut überlegt?
-
nijntje schrieb:
Hallo Zusammen
Kann ich ein Textfile, das ich in einem ersten Schritt mit Daten fülle (ca. 10000 Zeilen untereinander) und in einem zweiten Schritt wieder öffne für Berechnungen, überschreiben?
ofstream myFile ("test.txt", ios::app|std::ios::out);Also ich möchte die Daten aus test.txt für Berechnugen verwenden. Danach brauche ich dieses file nicht mehr. Aber ich brauche für verschiedene Werte immer wieder ein neues file. Da wäre es gut, wenn ich immer dieses test.txt überschreiben könnte (in einem loop).
So wie es jetzt ist, werden die Daten ergänzt.Das liegt am Flag. Du willst (wirklich ??? 10000 Zeilen Information, sabber) entweder std::ios::trunc (truncate, → leeren) oder einfach kein Flag (ebenfalls leeren).
-
Ja, das mit append habe ich schon verstanden.
Wenn ich im ersten Schritt die Daten schreibe, muss ja immer ergänzt werden.Bei mir sieht dieses file dann etwa so aus:
1 0 0 0
0 1 0 0
0 0 0 1
1 0 0 0
...Ich muss nur wissen, wie oft die 1 in jeder Spalte vorkommt. Dieses Verhältnis ist für jeden Parameterwert anders. Ich möchte aber 10 bis 20 Werte nacheinander untersuchen und nicht jedes mal ein neues file generieren. Das Ergebnis schreibe ich dann in ein anderes File, das nicht überschrieben werden darf. Also z.B.
0.5, 0.2, 0.2, 0.1
0.45,0.15,0.15,0.15
...gibt wahrscheinlich eine bessere Variante...
Ja und noch eine Frage:
Darf ich
C/C++ Code:
ofstream myFile ("test.txt", ios::app|std::ios::out);
global definieren?Ja, aber wieso sollte man so etwas tun wollen? Hast du dir das wirklich gut überlegt?
Im Moment habe ich das so in meiner Funktion
ofstream myFile ("test.txt", ios::app|std::ios::out); myFile << input << endl;Aber so wird jedes mal das File wieder geöffnet, oder? Das braucht mehr Zeit.
-
nijntje schrieb:
gibt wahrscheinlich eine bessere Variante...
Bestimmt. Aber für was? Was soll das Programm überhaupt tun? Deine Beschreibung ist ður jemanden, der nicht bereits weiß, wovon du spricht, nicht nachvollziehbar.
Ja und noch eine Frage:
Darf ich
C/C++ Code:
ofstream myFile ("test.txt", ios::app|std::ios::out);
global definieren?Ja, aber wieso sollte man so etwas tun wollen? Hast du dir das wirklich gut überlegt?
Im Moment habe ich das so in meiner Funktion
ofstream myFile ("test.txt", ios::app|std::ios::out); myFile << input << endl;Aber so wird jedes mal das File wieder geöffnet, oder? Das braucht mehr Zeit.
Deshalb nehmen artige Ausgabefunktionen ja auch eine Referenz auf einen Stream als Parameter (und ganz brave Funktionen geben die Referenz auch wieder zurück). Und wenn du die Ausgabefunktion dann noch operator<< nennst, dann bekommt sie auch ein schönes Geschenk zu Weihnachten.
-
das hilft mir leider nicht wirklich weiter...
Hab ich mich nicht klar ausgedrückt? Ich kann halt nicht den ganzen code hier erklären. Ich möchte einfach nach der Verwendung von test.txt, dieses überschreiben.
int main() { for (double m=-1.9; m<2.1, m+=0.1) { for (int t = 0; t < Schritte; ++t) { count.update(m); //hier wird das testfile geschrieben und wieder überschrieben } loop.mean_winding(m); //hier wir das Verhältnis ausgerechnet und in anderes file geschrieben [c]} }Das mit dem flag hab ich leider auch nicht verstanden.
Danke für die Hilfe