Announcement

Collapse
No announcement yet.

Fehler mit fstream

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler mit fstream

    Hallo

    ich habe leider gottes ein Problem mit fstream und zwar immer Wenn ich fstream in einer Klasse verwende, als variabel ,meint mein Compiler immer

    dies:

    \scanner.h(18) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Datei'

    und das immer wieder

    wenn ich jedoch fstream so vewende ausserhalb einer klasse dann funktioniert es natürlich.

    Anfangs dachte ich upps da habe ich wohl ein ";" vergessen aber nein dies habe ich nicht und glaubt mir ich habe gesucht. doch irgendwie verstehe ich das nicht das es so ist wie es ist. Ich habe sogar den Compiler neu Installiert hat aber nicht geholfen.

    Ich hoffe ihr könnt mir helfen denn ich weiß nicht mehr weiter.

    falls es euch hilft der code ausschnitt wo ich fstream verwende :
    Code:
    class Scanner
    {
    public:
    	Scanner	(void);
    	~Scanner(void);
    	void getLine(void);
    	void getChar(void);
    
    	//FileMangement
    	fstream Datei;
    	
    
    private:
    
    	int lineLen;	//aktuelle Lenge der Zeile
    	int linePos;	//aktuelle Position
    	int LineNr;		//aktuelle ZeilenNummer;
    	char buchstabe;	//letzter gelesener Buchstabe
    };

  • #2
    #include <fstream>
    using namespace std;

    obiges steht auch irgendwo rum?
    Christian

    Comment


    • #3
      Ah

      nur mal so zur sicherheit, muss ich "using namespace std; " in jeder header datei unter bringen damit ich fstream in den jeweiligen nutzen kann?
      weil ich hatte "using namespace std; " schon mal denfiniert und sonst hat das ja auch bisher großartig geklappt einmal alles zentral auflisten und dann zu nutzen

      Comment


      • #4
        Ich weiss nicht, was du mit zentral auflisten meinst, aber jede Klasse bekommt in ihrer header datei das includiert, was sie braucht. Schließlich will man ja die Klasse ev. nochmals verwenden .... und in dem anderen Projekt ist dann ev. das anderes zentral aufgelistet.

        Um eine mehrfache Einbindung dann zu vermeiden nutzt man include-Wächter derart:


        #ifndef suchenH
        #define suchenH
        //---------------------------------------------------------------------------
        #include <Classes.hpp>
        #include "chfilesearch.h"
        //---------------------------------------------------------------------------
        class GSuchenThread : public TThread
        {
        private:
        void GSuchenThread::Filesearch(String pfad);
        protected:
        void __fastcall Execute();
        public:
        int masknr;
        GThreadFileSearch *gfs;
        __fastcall GSuchenThread(GThreadFileSearch *value, int maskbit,bool CreateSuspended);
        };
        //---------------------------------------------------------------------------
        #endif


        Damit wird diese Header nur einmal "benutzt"
        Christian

        Comment


        • #5
          was ich mit zentral auflisten meine ist das man eine header datei z.b."stdafx.h" hat und dort alle header eingebunden werden oder Namensräume und
          dann in den .cpp dateien includiert wird

          und bisher braucht ich dann in den Headern nichts mehr einfügen wie header namensräume und das mit den mehrfach einbinden wird mittels "#pragma once" gelöst den gibt es aber wohl nur bei Visual c++ von Microsoft

          Comment

          Working...
          X