🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
2 messages
2 total messages Started by steinba Fri, 13 Oct 1995 16:33
Ausgabe in Files?
#566
Author: steinba
Date: Fri, 13 Oct 1995 16:33
19 lines
857 bytes
Hallo Leute!

Eine Freundin hat ein kleines Problem. Sie programmiert in Turbo C++ for
Windows. Dabei versucht sie Textausgaben in einen File zu dirigieren.

Dies geschieht mit

FILE * ausga

ausga=fopen('dout.cpp', 'w');

fprintf(ausga,'   sdadfafa');

Das Problem dabei ist, dass keine Ausgabe geschieht, wenn der fopenf-Befehl
aus Prozeduren oder Funktionen heraus aufgerufen wird.

Was muss sie aendern? Wer kann helfen?

Gruss, Andreas!
Re: Ausgabe in Files?
#579
Author: Michael Mauch
Date: Sun, 15 Oct 1995 22:45
69 lines
2077 bytes
On 13 Oct 1995 16:33:10 GMT, steinba@sunserver1.rz.uni-duesseldorf.de
() wrote:

>Eine Freundin hat ein kleines Problem. Sie programmiert in Turbo C++ for
>Windows. Dabei versucht sie Textausgaben in einen File zu dirigieren.
>
>Dies geschieht mit
>
>FILE * ausga
>
>ausga=fopen('dout.cpp', 'w');
>
>fprintf(ausga,'   sdadfafa');
>
>Das Problem dabei ist, dass keine Ausgabe geschieht, wenn der fopenf-Befehl
>aus Prozeduren oder Funktionen heraus aufgerufen wird.
>
>Was muss sie aendern? Wer kann helfen?

Vielleicht hab' ich Euer Problem ja nicht ganz verstanden, aber soviel
kann ich sagen:

Die Funktion fopen() _oeffnet_ eine Datei, d.h. danach _ist_ die Datei
offen und muss/darf auch nur dieses eine Mal geoeffnet werden. Dann
schreibt man mit fprintf() in die Datei, und wenn man nichts mehr in
die Datei schreiben will, benutzt man fclose(). Beispiel:

FILE * ausga;		// global

void Write(char* s)
{
  fprintf(ausga,"%s",s);
}

int main()
{
  ausga=fopen("dout.cpp", "w");
  ...
  Write("bla bla");
  ...
  fclose(ausga);
}


Andererseits _kann_ man die Datei auch vor jedem Schriebzugriff
oeffnen und danach wieder schliessen. Das bietet den Vorteil, dass die
Datei auch bei einem Absturz/Stromausfall "ueberlebt", ist aber wohl
relativ langsam. Allerdings sollte man die Datei dabei "anhaengend"
oeffnen:

void Write(char* s)
{
  FILE * ausga;

  ausga=fopen("dout.cpp", "a+");
  fprintf(ausga,"%s",s);
  fclose(ausga);
}



Tschuess...
		Michael


-- 
Ceterum censeo F1-Taste non esse ignorandum...

[Posted with Free Agent 1.0. For info, email agent-info@forteinc.com.]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads