# Ausgabe umleiten



## Eva (7. März 2004)

Hallo Leute, 
ich brauch Eure Hilfe!

Ich möchte gerne für ein Programm die Ausgabe umleiten, damit es nicht an die  Standardausgabe gelangt, sondern in eine Datei geschrieben wird, wenn ich ein "cout << "bla, bla"; " durchführe. 
Die Datei ist eine normale Textdatei. 

Ich hätte es mal so probiert (unser Lehrer hat es uns auch so gezeigt), was aber überhaupt nicht funktioniert: 

  ofstream* cfout; 
  cfout = new ofstream("c.txt");
  if (cfout->fail())
    return 1; 
  cout  = *cfout; 


Für eine Eingabeumleitung geht das relativ einfach, aber bei der Ausgabe stehe ich ein bisschen an. 

Danke für die Hilfe, 

Eva


----------



## basd (7. März 2004)

hmm habs mal getestet und du hast recht (unter Windows , Visual C++) funktioniert es so nicht, obwohl es sollte .
Lösung:

man muss den Stream schließen ;  cfout->close(); nach der Letzten ausgabe.


----------



## Eva (8. März 2004)

Das hilft auch nicht sehr viel! Ich bekomme beim Compilieren einen Fehler, das ihm der Befehl " cout = *fcout; " nicht passt!

Kann man die Ausgabe irgendwie anders umleiten?

Eva


----------



## Quaese (8. März 2004)

Hi,

hiermit solltest du die Eingabe auf ein File umleiten können.


```
#include <iostream.h>
#include <fstream.h>

void main(){

	char text[20];

	ofstream Output("test.txt");	// Ofstream instanziieren

	if(!Output.fail()){
		// Wert auf File umleiten
		Output << 5 << endl;

		cout << "Ihr Name:" << endl << "> ";
		// Wert einlesen
		cin.getline(text, 21);

		// Eingabe auf Datei umleiten
		Output << text << endl;
	}	// ENDE -- if(!Output.fail())

}
```

Ciao
Quaese


----------

