Hilfe Ich Find den Fehler Nicht



  • Hallo,
    Ich bin neu hier.
    Und komme gleich mit einem Problem ...
    Ich bekomm das einfach nicht hin er zeigt mir ständig einen Fehler und ich weiß nicht worindas probliem liegt , er zeigt an das es probleme gab und beendete das ganze .
    (hab windos XP )

    #include <string>
    #include <iostream>
    using namespace std; 
    
    int main(){
        string aufgabe;
        int wo=0;
        int anfang = 0;
        int ende= 0;
        int wieoft= -1; 
        string plus_teile[wieoft];
        int laufer_plus;
        bool weiter = true;
        cout<<"Geben sie die aufgabe ein\n";
        cin>>aufgabe;
        aufgabe="+"+aufgabe+"+";
       while(aufgabe.find("+",wo)!= aufgabe.rfind("+")){
                                    wo=aufgabe.find("+",wo) +1;
                                    wieoft+=1;
                                    }
        while(aufgabe.find("+",0)!= aufgabe.rfind("+")){
                 anfang = aufgabe.find("+",0);
                 ende = aufgabe.find("+",anfang+1);
                 plus_teile[laufer_plus]=aufgabe.substr(anfang,ende);
                 cout<<plus_teile[laufer_plus]<<endl;
                 laufer_plus +=1;
                 aufgabe.erase(anfang,(ende-anfang));                                                                    
            }  
        system("pause");
        return 0;
    }
    

    Wär ganz schon wenn hilfe kommen würde ...
    Vielen Dank im vorhinein
    ...



  • Daaaaaaas ist natürlich ärgerlich...



  • ich hatte eigentlich auf ne Hilfe gehofft 😃



  • Was für Probleme zeigt er dir an? Bist du mit dem Debugger schon durch gegangen?



  • Schau dir mal dein wieoft an:

    int wieoft= -1;
    string plus_teile[wieoft];
    

    nen negativer Index ist nicht gerade schoen 😃



  • naja es ist kein richtiger fehler
    nur wenn ichst dann gestartet hab dann schleißt er es sofort sdirss ...muss beendet werden fenster von mircosoft



  • MaxM93 schrieb:

    naja es ist kein richtiger fehler
    nur wenn ichst dann gestartet hab dann schleißt er es sofort sdirss ...muss beendet werden fenster von mircosoft

    Was soll das Programm überhaupt machen?

    Hast du sowas vor?

    #include <string>
    #include <iostream>
    
    int main()
    {
    	std::string Aufgabe = "100 +	5+ 10\r\n+1";
    
    	std::string Zahl;
    
    	for (size_t i = 0; i < Aufgabe.length(); ++i)
    	{
    		if (Aufgabe[i] == ' ' || Aufgabe[i] == '\t' || Aufgabe[i] == '\r' || Aufgabe[i] == '\n')
    		{
    			continue;
    		}
    
    		if (Aufgabe[i] == '+' || Aufgabe[i] == '-')
    		{
    			std::cout << Zahl << std::endl;
    
    			Zahl.clear();
    		}
    		else
    		{
    			Zahl += Aufgabe[i];
    		}
    	}
    }
    


  • MaxM93 schrieb:

    naja es ist kein richtiger fehler

    😃 doch ist es, nur weil es dein Compiler nicht anmeckert.
    Und zwar nen SpeicherzugriffsFEHLER



  • khjkhjk schrieb:

    MaxM93 schrieb:

    naja es ist kein richtiger fehler
    nur wenn ichst dann gestartet hab dann schleißt er es sofort sdirss ...muss beendet werden fenster von mircosoft

    Was soll das Programm überhaupt machen?

    Hast du sowas vor?

    #include <string>
    #include <iostream>
    
    int main()
    {
    	std::string Aufgabe = "100 +	5+ 10\r\n+1";
    	
    	std::string Zahl;
    
            Aufgabe += "+"; // <------------------ Quick and Dirty Fix :D --------->
    
    	for (size_t i = 0; i < Aufgabe.length(); ++i)
    	{
    		if (Aufgabe[i] == ' ' || Aufgabe[i] == '\t' || Aufgabe[i] == '\r' || Aufgabe[i] == '\n')
    		{
    			continue;
    		}
    
    		if (Aufgabe[i] == '+' || Aufgabe[i] == '-')
    		{
    			std::cout << Zahl << std::endl;
    
    			Zahl.clear();
    		}
    		else
    		{
    			Zahl += Aufgabe[i];
    		}
    	}
    }
    

    Korrektur.



  • naja s ist ein teil eines "Taschenrechners "

    er soll im prinzip
    den eingegebenen String
    in Teil strings verarbeiten die an den + zeichen getrennt werden


Anmelden zum Antworten