Problem mit <iostream.h>

bluemu

Grünschnabel
Hallo zusammen,

Ich habe eine Konsolenanwendung mit MFC(damit ich CString verwenden kann).
Das Programm erstellt einen BinärBaum "Tiereraten" was auch soweit funktioniert hat. Damit das Programm auch etwas "dazulernt", soll der Baum gespeichert, und bei der nächsten ausführung wieder geladen werden.
Zum Speicher habe ich die Lib <fstream.h> included.
Wenn ich das Programm jetzt kompiliere, erhalte ich fogende Fehlermeldungen:
C:\c++\Tiereraten2\Tiereraten2.cpp(96) : error C2872: 'cerr' : Mehrdeutiges Symbol
C:\c++\Tiereraten2\Tiereraten2.cpp(125) : error C2872: 'cout' : Mehrdeutiges Symbol
C:\c++\Tiereraten2\Tiereraten2.cpp(126) : error C2872: 'cin' : Mehrdeutiges Symbol
C:\c++\Tiereraten2\Tiereraten2.cpp(127) : error C2872: 'cin' : Mehrdeutiges Symbol

Wenn ich #include <fstream.h> wieder entferne läuft das ganze wieder einwandfrei.

Wo liegt das Problem und wie kann ich es umgehen?

Jede Hilfe wird dankbar entgegen genommen.
 
Du hast sicherlich irgendwo einen weiteren Standard-Stream-Header inkludiert, aber in der Version ohne ".h". oder verwendest du VC++7? Jedenfalls ist das Problem, dass es cout zum Beispiel bei MS zweimal gibt: Einmal als "alte" Version in der Headerdatei <iostream.h>, die du indirekt durch <fstream.h> inkludierst, und dann als "korrekte" Version im Namespace std, die aus <iostream> stammt. Ausserdem verwendest du möglicherweise ein zu globales "using namespace std;". Mach das mal weg und probier noch mal. Jedenfalls kann der Compiler bei dir cout und std::cout nicht unterscheiden und ist verwirrt. Du solltest die verschiedenen Versionen der Stream-Headerdateien nicht mischen, dann klappt das auch.
 
Zuletzt bearbeitet:
Hallo Kachelator

Es funktioniert jetzt einwandfrei SUPPER
das using namespace std wurde automatisch vom mfc erstellt nach dem entfernen war und ist(zumindest bis jetzt :) ) alles wieder IO.

Dankee schön
 
Zurück