C++ Schreiben einer Datei in einer Schleife
Sollte dies zählen von 30 Sekunden nach unten in eine txt-Datei. Aber kaum je macht die txt selbst. Was mache ich falsch? Oder ist es so, dass in der Schleife, c++ ist einfach nicht in der Lage, Datei-handling.
Es gibt einfach nichts in der text-Datei
for (i = 30; i >= 0; i--)
{
ofstream file;
file.open("asd.txt");
file << i;
file.close();
Sleep(1000);
}
- "Aber kaum je macht das txt-selbst" Was bedeutet das?
- Sagen Sie, dass du bist nur immer
0
wie der text in der Datei? Nun, das ist, weil Sie nicht im append-Modus; fügen Sie den openmode -std::ios_base::app
zuopen
. - Ich möchte die txt überschreiben sich
- Was ist dann das problem?
- Ihre Schleife wird ausgeführt für ~31 Sekunden, nicht ~30.
- Und für die kaum jemals macht, ich meine, manchmal macht es manchmal nicht.
- ty für den Hinweis
- Das problem ist, dass es nicht alles schreiben, was zu der txt-Datei
- Sie suchen vielleicht an den falschen text-Datei. Löschen Sie es und sehen, ob es wird neu erstellt, wenn Sie führen Sie Ihre app aus.
- Wenn alles text ist nicht gespült werden, um die Datei nach dem schreiben
- Es gespült wird, wenn die Datei geschlossen wird.
- Ich dachte, es spült standardmäßig, aber wenn nicht, dann krank versuchen Suche in das
close()
wird flush intern.- Mein Fehler, über das Spülen, also verwendet, um andere Sprachen, in denen es nicht bündig
- Jede Sprache flushes auf schließen. Jede Sprache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bewegen Sie den ofstream aus der Schleife wie diese :
Im Grunde, was Sie tun Sie erstellen-Objekt repräsentiert die Datei jedes mal, und Sie versuchen, es zu öffnen.
Wenn Sie den Zugriff auf die Datei jedes mal mit neuen Referenz(Objekt) schreibt er die neuen Daten und löscht die vorherigen Daten.
Versuchen Sie, dies zu tun:
Können Sie erklären
ofstream
out-of-Schleife.Wenn Sie es im inneren Schleife, verwenden Sie append-Modus.
Ersten, die Sie überschreiben Ihre Ausgabe-Datei "asd.txt" mit jeder Schleife. Sie müssen nur zu erstellen und zu initialisieren eines file-Zeiger einmal für jede Sitzung, die Sie tun, IO (außerhalb der Schleife). Das gleiche gilt für das schließen des Datei-Zeiger.