Was ist daran falsch?



  • #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    //Variablendeklaration
    double geschw = 0.0000 ;
    double anweg = 0.0000 ;
    double reakweg = 0.0000 ;
    double bremweg = 0.0000 ;
    string auswahl = " " ;
    bool wiederholen = true ;
    //Eingabe
    while (wiederholen == true)
    cout << "Berechnung des Anhalteweges" << endl;
    cout << endl << endl;
    cout << "Mit diesem Programm kannst du deinen Anhalteweg errechnen." << endl;
    cout << endl << endl;
    cout << "Gib jetzt deine Geschwindigkeit an." << endl;
    cout << endl << endl;
    cin >> geschw;
    //Verarbeitung
    bremweg = ((geschw / 10 ) * (geschw / 10)) / 2 ;
    reakweg = (geschw / 10) * 3 ;
    anweg = bremweg + reakweg ;
    cout << endl << endl;
    //Ausgabe
    cout << "Dein Anhalteweg ist " << anweg << " Meter." << endl;
    cout << endl << endl;

    //Abbruch
    cout << " Moechten Sie noch eine Rechnnung durchfuehren? (Ja) ";
    cout << endl << endl;
    cin >> auswahl;
    if ((auswahl == "JA") || (auswahl == "Ja") || (auswahl == "J") ||
    (auswahl == "jA") || (auswahl == "ja") || (auswahl == "j"))
    {
    wiederholen = true;
    }

    }

    wenn ich das complimiere dann bekomm ich diese meldungen
    multiple definition of `main'
    first defined here
    ld returned 1 exit status
    C:... \Documents\Programmierung\While (anhalteweg)\Makefile.win [Build Error] ["While] Error 1

    Ps: wie kann ich das so aussehen lassen wie in der programmerstellung das zb die kommentare usw farbig sind?

    danke im vorraus



  • ok ich weiß es glaub ich die auswahl darf kein string sein oder?



  • #include <cstdlib>
    #include <iostream>
    
    using namespace std; 
    
    int main()
    {
    	//~~~~~~~~~~~~~~~~~~~~Variablendeklaration~~~~~~~~~~~~~~~~~~~~
    	double geschw = 0.0000 ;
    	double anweg = 0.0000 ;
    	double reakweg = 0.0000 ;
    	double bremweg = 0.0000 ;
    	string auswahl = " " ;
    	bool wiederholen = true ;
    
    	//~~~~~~~~~~~~~~~~~~~~Eingabe~~~~~~~~~~~~~~~~~~~~
    	while (wiederholen == true)
    		cout << "~~~~~~~~~~Berechnung des Anhalteweges~~~~~~~~~~" << endl;
    
    	cout << endl << endl;
    	cout << "Mit diesem Programm kannst du deinen Anhalteweg errechnen." << endl;
    	cout << endl << endl;
    	cout << "Gib jetzt deine Geschwindigkeit an." << endl;
    	cout << endl << endl;
    	cin >> geschw;
    
    	//~~~~~~~~~~~~~~~~~~~~Verarbeitung~~~~~~~~~~~~~~~~~~~~
    	bremweg = ((geschw / 10 ) * (geschw / 10)) / 2 ;
    	reakweg = (geschw / 10) * 3 ;
    	anweg = bremweg + reakweg ;
    	cout << endl << endl;
    
    	//~~~~~~~~~~~~~~~~~~~~Ausgabe~~~~~~~~~~~~~~~~~~~~
    	cout << "Dein Anhalteweg ist " << anweg << " Meter." << endl;
    	cout << endl << endl;
    
    	//~~~~~~~~~~~~~~~~~~~~Abbruch~~~~~~~~~~~~~~~~~~~~
    	cout << " Moechten Sie noch eine Rechnnung durchfuehren? (Ja) ";
    	cout << endl << endl;
    	cin >> auswahl;
    	if ((auswahl == "JA") || (auswahl == "Ja") || (auswahl == "J") ||
    		(auswahl == "jA") || (auswahl == "ja") || (auswahl == "j"))
    	{
    		wiederholen = true;
    	}
    }
    

    und wie wir sehen läuft hier einiges schief. bei deiner while schleife fehlen geschweifte klammern, nicht dass es den compiler stören würde, aber es hat einen anderen effekt als du denkst 😉
    am ende fehlt ein return 0; und für std::string brauchst du den header string und nicht cstdlib

    aber ansonsten sieht der code halbwegs ok aus, rein syntaktisch betrachtet natürlich

    und die fehlermeldung sagt was ganz adneres als du in deinem 2. post anmaßt. kann es sein dass du uns etwas quellcode verheimlichst? so wie du es hier geschrieben hast, hast du eine main funktion definiert, da sollte eig kein std konformer compiler meckern von wegen multiple definition...



  • benutze Dev-C++ und wenn man da ein Projekt erstellt, dann wird das:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    automatisch erstellt.

    noch was bin eigentlich noch blutiger anfänger und lerne halt alles in der schule also ich kann nciht wirklich was mit den fachbegriffen was anfangen also sry aber "header string und nicht cstdlib" sagt mir nichts^^

    aber quellcode verheimliche ich nicht



  • DerEineTyp schrieb:

    benutze Dev-C++ und wenn man da ein Projekt erstellt, dann wird das:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    automatisch erstellt.

    noch was bin eigentlich noch blutiger anfänger und lerne halt alles in der schule also ich kann nciht wirklich was mit den fachbegriffen was anfangen also sry aber "header string und nicht cstdlib" sagt mir nichts^^

    aber quellcode verheimliche ich nicht

    über #include <header> inkuldierst du header dateien. und du sollst nicht #include <cstdlib> nehmen, sondern #include <string>



  • danke an euch beiden aber das hat nicht wirklich was genützt.
    hab den header geändert, die geschweiften klammern und return 0 geschrieben.

    funktioniert immer noch nicht
    immer noch die gleichen meldungen

    multiple definition of main' first defined here multiple definition ofmain'
    first defined here
    ld returned 1 exit status
    C:... \Documents\Programmierung\While (anhalteweg)\Makefile.win [Build Error] ["While] Error 1



  • Gib mal deinen Quellcode und bitte mit CodeTags. Unter der Eingabe für Nachrichten steht C/C++ dazwischen



  • Steht doch da. Du hast in deinem Projekt vermutlich mehrere .cpp Dateien mit main-Funktionen. Das funktioniert so nicht.



  • zuckerlie schrieb:

    Gib mal deinen Quellcode und bitte mit CodeTags. Unter der Eingabe für Nachrichten steht C/C++ dazwischen

    sry aber hab keine ahnung was du von mir willst^^

    das hier vllt?

    Compiler: Default compiler
    Building Makefile: "C:... \Documents\Programmierung\While (anhalteweg)\Makefile.win"
    Führt make... aus
    make.exe -f "C:... \Documents\Programmierung\While (anhalteweg)\Makefile.win" all
    g++.exe -c While.cpp -o While.o -I"C:/Dev/bloodshed/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev/bloodshed/include/c++/3.4.2/backward" -I"C:/Dev/bloodshed/include/c++/3.4.2/mingw32" -I"C:/Dev/bloodshed/include/c++/3.4.2" -I"C:/Dev/bloodshed/include"

    g++.exe While.o ../Anhalteweg/main.o ../Umrechner/Umwandeln.o -o "While Schleife.exe" -L"C:/Dev/bloodshed/lib"

    ../Anhalteweg/main.o(.text+0x100):main.cpp: multiple definition of main' While.o(.text+0x100):While.cpp: first defined here ../Umrechner/Umwandeln.o(.text+0x100):Umwandeln.cpp: multiple definition ofmain'
    While.o(.text+0x100):While.cpp: first defined here
    collect2: ld returned 1 exit status

    make.exe: *** ["While] Error 1

    Ausführung beendet


  • Mod

    Du linkst zwei Dateien zusammen, die beide eine Funktion namens main haben. Wenn nun ein Programm erstellt werden soll (was im Prinzip ein Aufrufen der main-Funktion ist), dann ist unklar, welche der beiden Funktionen genommen werden soll.

    edit: Mit der genauen Fehlermeldung wird klar:
    ../Anhalteweg/main.o
    und
    ../Umrechner/Umwandeln.o
    und
    While.o

    enthalten alle eine Definition von main.



  • Ich möchte dass du deinen aktuellen Quelltext postest. 🙂



  • 314159265358979 schrieb:

    Steht doch da. Du hast in deinem Projekt vermutlich mehrere .cpp Dateien mit main-Funktionen. Das funktioniert so nicht.

    ich habe mehrer projekte geöffnet in einem fenster meinste das?



  • SeppJ hatte recht lag daran das ich mehrere .cpp dateien aufeinma geöffnet hatte

    th an alle funzelt jetzt einwand frei


  • Mod

    DerEineTyp schrieb:

    SeppJ hatte recht lag daran das ich mehrere .cpp dateien aufeinma geöffnet hatte

    th an alle funzelt jetzt einwand frei

    Ich wette deine IDE bietet die Möglichkeit, mehrere Projekte parallel zu bearbeiten, wenn du dich nur auskennst :xmas2: .


Anmelden zum Antworten