bekomme code weder compiliert noch executable



  • Hi.
    Ich kann dir nicht alles sagen, aber du verwendest eine alte Headerdatei.

    Dein include sollte folgendermaßen lauten:

    #include <iostream> //nicht(!) iostream.h
    

    Das ist auch das, was dein Compiler bemängelt:

    "...#warning This file includes at least one deprecated or antiquated header..."

    Wenn du das ausgemerzt hast, kannst du gleich das erste

    int main();
    

    rauschmeissen.

    Und hinter den include folgendes schreiben.

    using namespace std;
    

    Dann solltest du dein erstes Programm compiliert bekommen und es ausführen könne.

    P.S. Die Suchfunktion sollte dir eigentlich bei solchen einfachen Problemen auch gute Dienste leisten!

    Edit:
    Habe die '{' gar nicht bemerkt. Jedoch ist auch dein '/n' falsch, wenn es einen Zeilenumbruch bewirken soll muss es '\n' heissen 🙂



  • Unbenannt1.cpp:8: error: expected `}' at end of input

    Kein Wunder, wenn du zwei Klammern aufmachst, aber nur eine zu...



  • Vielen dank leute, ihr habt mir sehr geholfen hab den code jetzt etwas umgeändert und das compilieren ging ohne probleme

    #include <iostream>
    using namespace std;
    int main() 
        {
        cout << "Hello World!\n";
        return 0;
    }
    

    hab jetzt noch eine Frage und ein Problem offen.

    Meine frage bezieht sich auf das

    #include <iostream> //müssen alle Header-dateien ohne .h geschrieben werden und in diesem zusammenhang
    
    using namespace std; //das unter dem include stehen haben?
    

    und zu meniem weiterhin offenstehendem problem, habe zwar den Quelltext erfolgreich Compiliert, sodass ich eigentlich das Programm laufen lassen können sollte, ist aber leider nicht der fall!

    hab zwar das Programm Ausgeführt, jedoch ging das Dos/MS-Eingabeaufforderungs Fenster genausoschnell wieder zu wie auf, sodass ich nicht einmal erkennen konnte was ich eigentlich da geschrieben hatte. könnt ihr mir dabei vielleicht ebenfalls einige Tipps geben woran das liegen könnte?

    P.S.
    Was die Suchfunktion betrifft werde ich diese auch für die Zukunft benutzen nur wusste ich in diesem Fall nicht wonach genau ich suchen sollte weil ich den Fehler nicht verstanden hatte.

    Hochachtungsvoll
    Snakek1



  • Entschuldigt bitte für die unüberlegte frage mit der header datei, ist schon spät und da die neue ohne .h lautet ist es logisch das es wohl bei allen so sein sollte. Tut mir wie gesagt leid

    Ich hoffe ihr könnt mir bei meinem Anzeige Problem denoch helfen



  • Snakek1 schrieb:

    Entschuldigt bitte für die unüberlegte frage mit der header datei, ist schon spät und da die neue ohne .h lautet ist es logisch das es wohl bei allen so sein sollte.
    Ich hoffe ihr könnt mir bei meinem Anzeige Problem denoch helfen

    1. die c++ standard header alle ohne .h und die die es in c gab mit einem c davor, also zb für die math.h nen <cmath> usw...

    2)Du wolltest doch die suche benutzten, hierzu haben wir hier auf jeden fall jede woche eine frage...
    also versuch mal

    std::cin.get()
    

    vor dein return 0; ( also in der zeile darüber ) einzubauen. somit "wartet" die konsole eine tasteneingabe ab, also in deinem fall ein "enter" , bis sie sich schliesst.



  • Hehe vielen dank,
    die Suchfunktion habe ich auch benutzt leider aber erst nach meiner frage und auch nach deiner Antwort die Lösung gefunden 🙂

    nur das mein Source Code etwas anders geschrieben ist als du das vorgeschlagen hattest, da ich noch nicht weiss was

    using namespace std
    

    überhaupt für eine bedeutung hat und wo genau dies abgekürzt wie hinzuscheriben ist...deswegen mit den ganzen std::irgendwas ziemlich durcheinander kommen würde

    #include <iostream>
    using namespace std;
    int main() 
        {
        cout << "Hello World!" << endl;
        cin.get();
    }
    

    Es freut mich wirklich sehr das ich eine so nette community wie hier gefunden hab bei der ich innerhalb kürzester zeit die anfänger fragen beantwortet bekommen habe 😃

    Hochachtungsvoll
    Snakek1



  • #include <iostream>
    using namespace std;
    int main()
        {
        cout << "Hello World!" << endl;
        cin.get();
       return 0;// auch wenn es implizit eingesetzt wird nicht vergessen... 
    }
    

    zu std
    wenn du die c++ standardfunktionen verwendest musst du dem compiler mitteilan aus welchem namensraum ( namespace ) sie kommen, das kannst du entweder mittels scope operator ::
    oder mittels
    using namspace
    .. denn die funktionen wie cout oder cin sind im namespace std definiert...
    also kannst du entweder
    std::cout
    benutzen oder einfach am anfang
    using namespace std;
    schreiben , so musst du es nur einmal ,sonst müsstest du vor jedes cout cin , cerr und alle anderen standard funktionen std:: schreiben...



  • Ahso das heißt das es wenns am Anfang steht bei einem größerem Quelltext viele zeichen erspart oder?

    was das return angeht- hab ich hier im forum mehrfach gelesen das nach neuen standarts dieses nicht mehr gebraucht wird sofern es bei 0 bleibt -wofür ist dieses im grunde genommen überhaupt gut? bzw. was bewirkt das return 0; ?

    nunja wobei ich brauche da erlichgesagt wohl zu jetzigem zeitpunkt keine antwort 🙂 werde das kapitel sicherlich auch noch irgendwann durchnehmen, hab heir nicht umsonst zwei bücher wovon ich gerade gemerkt hab das c++ programmierung von thomas hagemann scheinbar veraltet sein müsste...immerhin noch c++ in 21 tagen 🙂
    mal gucken

    danke dir für deine hilfe 🙂

    Hochachtungsvoll
    Snakek1



  • Die main-Funktion ist als int main() deklariert und definiert das "int" am Anfang bedeutet das sie einen int(eger)-Wert zurückgeben muss. Wenn man nichts schreibt "wissen" die meisten Compiler dass es sich bei der main um ein "implizites" return handelt, also "generieren" sie das return 0;
    Bei anderen Funktionen musst du aber Rückgabewerte verwenden wenn sie keine void funktionen sind, aber wie du schon sagst, dies wirst du spätestens dann verstehen wenn du "funktionen" und durchgenommen hast.
    zum std::
    Ja, es erspart dir ggf ne Menge Zeichen, wenn du "using namespace" schreibst, aber da du auch selbst namespaces schreiben bzw andere verwenden kannst, kann es ggf mal zu Namenskonflickten kommen, um dies zu verhindern könntest du mit std::name alles eindeutig machen.
    ich weiss, das sind eine menge Infos auf einmal, aber keine Angst du wirst es nach und nach verstehen , also mach weiter und scheu dich nicht zu fragen.

    //edit gute Nacht -.-



  • So hab mich jetzt auch erstmal hier auf dem Board Registriert 🙂
    jeder Anfang ist schwer und muss erstmal überwunden werden...damit man später mehr weiss und damit auch erkennt das man je mehr man weiss, im grunde gar nichts weiss...die Ironie von dem wissen fasziniert mich immer wieder irgendwie 😃
    heißt es nicht auch wissen ist macht? da kommt das bei 1984 geschriebene aber irgendwie näher der wahrheit mit unwissenheit ist stärke -wenn man nichts weiss man man sich auch keine mühe machen mehr zu wissen und zu erfahren um irgendwann doch etwas zu wissen 😃

    blubb ich bin langsam auch müde und rede nur noch schwachsinn wie ich gerade merke...nunja was ich im grunde sagen wollte war nur ichw erd mich nicht scheuen und werde auch keine angst haben näher in die materie hineinzuschlüpfen 😃

    ähm bevor ich mich noch weiter zum affen mache sollte ich zumindest für heute aber lieber mal schlafen gehen gute nacht 😉


Anmelden zum Antworten