2009-06-29 13 views
2

mein Problem ist fprintf ist nur Teil der erwarteten Ausgabe in die Datei drucken.Wenn ich printf die Ausgabe wird korrekt auf das Ausgabefenster gedruckt, zeigt, dass die Schleife korrekt ist aber Wenn ich es mit fprintf verwende, wird die komplette Ausgabe nicht gedruckt. Nur der erste Teil wird gedruckt.Wie schreibe ich in eine Textdatei von C-Programm

Bitte beraten, was möglicherweise das Problem sein könnte ???

Dank im Voraus ...

+0

Post einige Code, der das Problem veranschaulicht –

Antwort

0

Sie versuchen, zu verwenden fflush()

+0

Ich habe dies abgelehnt, weil die Antwort einfach keinen Sinn ergibt, wahrscheinlich wegen Englisch nicht Ihre Muttersprache. Sie sagten "Sie versuchen, fflush zu verwenden", aber er versuchte nicht, fflush zu verwenden. Vielleicht meintest du, er sollte es versuchen? Wenn dem so ist, wurde das schon mehrmals vorgeschlagen, also ist es nicht sinnvoll, es noch einmal zu sagen. –

3

Das Problem wahrscheinlich zu tun vergessen ist, dass Sie nicht C sagen die Daten auf die Festplatte tatsächlich zu schreiben. Dies geschieht normalerweise automatisch beim Schließen einer Datei und kann automatisch zu anderen Zeiten erfolgen (z. B. wenn interne Puffer voll sind).

Es klingt, als ob Sie nur ein paar Bytes schreiben und dann die Datei überprüfen, um zu sehen, was passiert ist. Wenn dies der Fall ist, hält Ihr Programm diese Bytes möglicherweise in einem internen Puffer, bevor es tatsächlich auf die Festplatte schreibt. Dies dient zur Verbesserung der Leistung im allgemeinen Fall - normalerweise möchten Sie keinen Plattenzugriff für jede einzelne Druckanweisung.

Eine Lösung, wie andere Antworten vorschlagen, besteht darin, fflush aufzurufen. Dies "spült" alle gepufferten Daten auf die Festplatte. Es gibt andere Lösungen, um die Pufferung zu deaktivieren, aber das Aufrufen von fflush ist der beste erste Schritt, da Sie neu in der Programmierung sind.

Für weitere Informationen, hier ist ein Link zu einem wiki book über Datei-I/O mit C. Sie können direkt auf die section on fflush springen, obwohl Sie die einleitenden Abschnitte lesen möchten, um ein wenig mehr Einblick zu gewinnen.

Verwandte Themen