main.exe hat ein Problem festgestellt und muss beendet werden.



  • lern erst mal die grundlagen richtig. du hast noch nicht so ganz verstanden was da überhaupt passiert.

    Wenn ich im C++ auf Compile & Run gehe

    es wurde schon gesagt, aber noch mal, es ist c und kein c++.



  • Noris schrieb:

    ich hab jetzt nur noch ein kleines Problem und zwar wie lässt man eine Wurzel ziehen ?

    mfG
    Tobi

    C:

    #include <math.h>
    ...
    sqrt(<integer>)
    

    C++:

    #include <cmath>
    ...
    std::sqrt(<integer>)
    


  • Man ich hab immer noch ein Problem.
    (Langsam komm ich mir wie eine Nervensäge vor ^^)

    und zwar wenn ich das mit dem Wurzel ziehen mache kommt immer:
    "parse error before '<' token"

    mfG
    Noris



  • Weil du die <> weglassen solltest.
    Waren nur Platzhalter.



  • 😃 soory, werd nie wieder machen...

    sqrt(5) und so war gemeint... :xmas1:



  • Hallo,

    ich spare es mir mal einen neuen Thread auf zu machen, weil ich genau das gleiche Problem habe! 😞
    Ich habe ein kleines Programm geschrieben, dass alle Teiler einer Zahl auflisten soll.

    Immer wen ich die Zahl dann eingebe und Enter drücke kommt die Fehlermeldung dass das Programm beendet werden muss.

    #include <iostream>
    #include "ic.hpp"
    
    using namespace std;
    using namespace ic;
    using namespace ic::shorties;
    
    const unsigned char ue = static_cast<unsigned char>(129);
    
    int main()
    {
          clrscr(BG_YELLOW);
    	con.setTitle(TEXT("TeilerFinder"));
    	textcolor(FG_BLUE);
    	bgcolor(BG_GREEN);
    	gotoxy(25,5);
    	cout<<"Willkommen beim TeilerFinder";
    	gotoxy(30,8);
    	textcolor(FG_GREY);
    	bgcolor(BG_YELLOW);
    	cout<<"weiter mit ENTER";
    	textcolor(FG_RED);
    	gotoxy(0,19);
    	cout<<"by Ich";
    	gotoxy(0,0);
    	cin.get();
    	clrscr(BG_BLUE);
    	textcolor(FG_WHITE);
    	bgcolor(BG_BLUE);
    	gotoxy(15,5);
    	cout<<"Bitte geben sie die zu pr"<<ue<<"fende Zahl ein:\t";
    	unsigned int zahl;
    	textcolor(FG_YELLOW);
    	cin>>zahl;
    	textcolor(FG_BLACK);
    	gotoxy(0,0);
    	int i=zahl;
    	while (i>0)
    	{
    	      i--;
    	      if (zahl / i==0)
    	      {
    	            cout<<i<<endl;
    	      }
    	}
    	return 0;
    }
    

    Schon mal im vorraus danke für eure Hife!!!



  • bei sowas nimmt man einen debugger und geht das programm zeile für zeile durch, dann sieht man ganz schnell wo es kracht.



  • Hi,

    Debugger CSpille meldet sich zu Wort.
    Ich schreib einfach mal, was mir auffällt als Kommentar dazu:

    #include <iostream> 
    #include "ic.hpp" 
    
    using namespace std; 
    using namespace ic; 
    using namespace ic::shorties; 
    
    const unsigned char ue = static_cast<unsigned char>(129); 
    
    int main() 
    { 
          clrscr(BG_YELLOW); 
        con.setTitle(TEXT("TeilerFinder")); 
        textcolor(FG_BLUE); 
        bgcolor(BG_GREEN); 
        gotoxy(25,5); 
        cout<<"Willkommen beim TeilerFinder"; 
        gotoxy(30,8); 
        textcolor(FG_GREY); 
        bgcolor(BG_YELLOW); 
        cout<<"weiter mit ENTER"; 
        textcolor(FG_RED); 
        gotoxy(0,19); 
        cout<<"by Ich"; 
        gotoxy(0,0); 
        cin.get(); 
        clrscr(BG_BLUE); 
        textcolor(FG_WHITE); 
        bgcolor(BG_BLUE); 
        gotoxy(15,5); 
        cout<<"Bitte geben sie die zu pr"<<ue<<"fende Zahl ein:\t"; 
        unsigned int zahl; 
        textcolor(FG_YELLOW); 
        cin>>zahl; 
        textcolor(FG_BLACK); 
        gotoxy(0,0); 
        int i=zahl; 
        while (i>0) 
        { 
              i--; // Vor der Bedingung decrementieren -> kommt auch mit 0 hinein -> Division durch 0 -> BOOM
              if (zahl / i==0) // Ich denke mal du meinst Modulo: (zahl % i) == 0
              { 
                    cout<<i<<endl; 
              } 
        } 
        return 0; 
    }
    

    btw: Ohne Debugger hast du auf Dauer verloren (besonders als Anfänger)
    Bei mir gehts häufig schon ohne Debugger, aber wie leicht zeigt nen Zeiger
    auf ein anderes Element oder gar freigegebenen Speicherbereich.
    Sowas findet man nur mit nem Debugger oder viel Geduld und viel zu viel Zeit.

    Gruß,
    CSpille



  • Danke für eure Hilfe,
    jetzt hats geklappt 😃
    Könnt mir vllt noch erklären wie man den Debugger benutzt?
    Wenn ich nämlich auf debuggen klicke startet nur das Programm das ich geschrieben habe.



  • Entweder du setzt an bestimmten Stellen Haltepunkte (Breakpoints) und steppst dann Zeile für Zeile durch dein Programm.
    Oder aber du wartest, bis dein Programm abstürzt und schaust dir dann mittels des CallStacks die fehlerhaften Funktionen an.

    Die Hilfe zu deiner IDE sollte da aber ergiebiger sein...


Anmelden zum Antworten