string annahme



  • Hallo, warum funktioniert das nicht?
    [/cpp]#include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    class ShadowStrikeSettings
    {
    private:
    string m_pitchCurveBias;

    public:
    void GetLine(fstream File,string n_string);
    void PlayerCam();
    };

    void ShadowStrikeSettings::GetLine(fstream File,string n_string)
    {
    do
    {
    getline(File, n_string);
    }
    while ((n_string[0] == '/') || (n_string[0] == '\n'));
    };

    void ShadowStrikeSettings::PlayerCam()
    {
    fstream File;
    File.open("Binary/ShadowStrikeSettings.ini",ios::in);
    GetLine(File, m_pitchCurveBias);
    };

    int main(void)
    {
    system("color 0A");
    ShadowStrikeSettings sss;
    sss.PlayerCam();
    cin.get();
    }[cpp]

    Gibt mir immer ne Fehlermeldung aus, der auf eine Stelle in der lib verweist. Wenn ihr noch mehr Infos zum lösen des Problems braucht, sagt bescheid. Was das Programm machen soll, sollte einleuchtend sein, es soll nämlich Zeilenweise einlesen und jeweils im string speichern.
    Danke im Voraus!



  • mal code formatiert:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    class ShadowStrikeSettings
    {
      private:
        string m_pitchCurveBias;
      public:
        void GetLine(fstream File,string n_string);
        void PlayerCam();
    };
    
    void ShadowStrikeSettings::GetLine(fstream File,string n_string)
    { 
      do
      {
        getline(File, n_string);
      }
      while ((n_string[0] == '/') || (n_string[0] == '\n'));
    };
    
    void ShadowStrikeSettings::PlayerCam()
    {
      fstream File;
      File.open("Binary/ShadowStrikeSettings.ini",ios::in);
      GetLine(File, m_pitchCurveBias);
    };
    
    int main(void)
    {
      system("color 0A");
      ShadowStrikeSettings sss;
      sss.PlayerCam();
      cin.get();
    }
    

    Jetzt wäre es nicht schlecht, welche Fehlermeldung ausgegeben wird 😉

    PS:
    Könnte es sein, dass die Parameter der Funktion GetLine Referenzen sein sollten?



  • hi? schrieb:

    Hallo, warum funktioniert das nicht?

    du bist ein troll, oder?
    1. lern die grundlagen von c++
    2. lern vernünftige fragen zu stellen



  • Achja, der Code sieht aktuell so aus:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    class ShadowStrikeSettings
    {
    private:
    	string m_pitchCurveBias;
    
    public:
    	bool VeryfyingFile();
    	void GetLine(ifstream File,string n_string);
    	void PlayerCam();
    };
    
    bool ShadowStrikeSettings::VeryfyingFile()
    {
    	ifstream File;
    	File.open("Binary/ShadowStrikeSettings.ini",ios::in);
    
    	unsigned long FILE = sizeof(File);
    
    	if(FILE != 12288)
    	{
    		return false;
    	}
    	else
    	{
    		return true;
    	}
    };
    
    void  ShadowStrikeSettings::GetLine(ifstream File,string n_string)
    {
    	do
    	{
    		getline(File, n_string);
    	}
    		while ((n_string[0] == '/') || (n_string[0] == '\n'));
    };
    
    void ShadowStrikeSettings::PlayerCam()
    {
    	ifstream File;
    	File.open("Binary/ShadowStrikeSettings.ini",ios::in);
    	//GetLine(File, m_pitchCurveBias);
    };
    
    int main(void)
    {
    	system("color 0A");
    	ShadowStrikeSettings sss;
    	if(sss.VeryfyingFile()==false)
    	{
    		cout<<"Die zu bearbeitende Datei wurde bereits manipuliert. \nBitte installieren Sie das Spiel neu!"<<endl;
    	}
    	cin.get();
    }
    

    Er soll einfach nur Zeile für Zeile in einem String einlesen.
    Der Error der kommt:

    1>e:\programme\microsoft visual studio 9.0\vc\include\fstream(676) : error C2248: "std::basic_ios<_Elem,_Traits>::basic_ios": Kein Zugriff auf private Member, dessen Deklaration in der std::basic_ios<_Elem,_Traits>-Klasse erfolgte.
    

    Danke im Voraus!



  • bei mir compiliert das problemlos o_o



  • Ich verweise mal auf den Thread:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-227891.html

    wo dir schon gesagt wurde das du mit der Methode wie du versuchst die größe der Datei zu bestimmen nicht an das gewünschte Ziel kommst.
    Desweitern compiliert es bei mir auch.



  • Mensch, macht doch mal das "//" vor dem GetLine weg. Dann seht ihr die Ferhlemeldung. Mir ist schon klar das es so nicht geht, daher bringts mir nichts wenn ihr mir das nochmal sagt. Dann sagt mir lieber wie ich's besser mache.
    Danke.



  • void ShadowStrikeSettings::GetLine(ifstream &File,string &n_string)


Log in to reply