Totales Anfänger Prob^^



  • Das liegt daran, dass dein Programm direkt nach der Ausgabe bereits beendet ist und somit die Konsole wieder schließt.
    Du musst also am Ende noch auf irgendein Ereignis warten.
    z.B

    #include <iostream.h> 
    #include <stdio.h>
    int main() 
    { 
    cout << "Hello World!\n"; 
    getchar();
    return 0; 
    }
    

    Hier wartest du also bis irgendein Zeichen eingegeben wird (Taste wird gedrückt). Eine Auswertung des Zeichens erfolgt hier nicht.
    Willst du nur ein bisschen warten, dann geht auch Sleep(Zeit in ms);



  • erst mal danke für die schnelle antwort. In der schule meinte der lehrer das man denn befehl getch() verwenden soll mit der header datei conio.h aber das geht nicht und hier ist es auch so beschrieben ohne die verzögerung = http://download.pearsoned.de/leseecke/c++_21Tg/data/kap01.htm

    ist das ein fehler im tutorial?



  • joahh schrieb:

    ist das ein fehler im tutorial?

    Nein, der kleine Unterschied ist, das die im Link beschriebenen Progs unter DOS laufen und da bleibt die Konsole natürlich immer auf 🙂
    Unter Windows ,musst du selbst dafür Sorge tragen.
    getc(), getchar(), getch(), kbhit() usw. machen so ziemlich alle das selbe (kbhit() kannst du nicht auswerten). Hängt von der Implementierzng ab.



  • Hallo,

    Ein Fehler im Tutorial ist das nicht. Es ist halt das "klassische" Hello-World-Programm. Das ist nicht dafür gedacht in einer grafischen Umgebung wie Win zu laufen. Eine typische Konsolen-Anwendung

    Ciao



  • joahh schrieb:

    ist das ein fehler im tutorial?

    Nein... daß ist kein Fehler im Tutorial.
    Wenn man das fertige Programm in einer Konsole startet bleibt das Konsolenfenster natürlich ganz normal offen.
    Manche IDE`s lassen daß Konsolenfenster automatisch offen und warten auf manueles Schließen.
    DevCpp tut dies nicht.



  • so ich bins schon wieder^^

    Also ich hab denn code jetzt so:

    #include <iostream.h>
    #include <conio.h>
    int main()
    {
    cout << "Hello World!\n";
    getch ();
    return 0;
    }

    im prinzip geht alles und die meldung bleibt auch da aber der compiler zeigt fehlermedungen an. Sind diese schlimm?

    1 C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from C:\Dokumente und Einstellungen\Timo\Desktop\Unbenannt1.cpp In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31, from C:\Dokumente und Einstellungen\Timo\Desktop\Unbenannt1.cpp

    So und dann wollte ich mal wissen wozu überhaupt der befehl return 0; ist.

    Und dann wüßte ich noch gerne ob sich dieser compiler überhaupt für einen anfänger eignet.

    So und jetzt die letzte frage und dann werde ich euch auch wieder auf eurem Forum in Ruhe lassen: in der schule lernen wir das man void main () nehmen soll und in denn tutorials steht das man int main() nehmen soll. Aber wo ist der unterschied und lern ich es in der schule falsch?

    So das wars 😮 😮 😮



  • Noch als Tip:

    für so kleine Programme habe ich zum lernen ein minimales Cygwin benutzt. Ist keine IDE, nicht ganz so einfach zu bedienen, aber am Ende kann mans dann richtig.



  • mit return wird ein Programm-status zurückgegeben. 0 bedeutet alles in ordnung. Alles Andere Fehler. Ist eigentlich ein Relikt aus der C-Zeit und wird nicht von allen C++ Compilern gefordert.



  • ach so, void bedeutet das die Funktion nix zurückgibt. Also ist dann ein return unsinn weil die Funktion es halt nicht zurückgibt.



  • Jupp, aber void main() ist entgegem dem C++ standard, wird dir hier von 99,999 % aller C++-Programmierer wie eine Straftat nachgehängt und ist auch völlig unsinnig.

    Die Funktion sollte immer einen Wert zurückliefern, damit das OS weis, was das Programm beendet hat (eine Ausnahme besteht hier nur, wenn dein Programm selbst ein OS ist).

    Ich würde einen Prof, der behauptet man solle void main() verwenden nicht als Prof bezeichnen (außer es gibt dafür 'nen sehr guten Grund). Frag ihn doch mal, warum er dass meint, seine Antwort würde mich wirklich interessieren!

    P.s. Ich würde mir void main() schon desshalb nich angewöhnen, weil viele vernünftige Compiler dir im Programm das als Fehler anstreichen und die Kompilation verweigern!

    EDIT:
    P.P.s. Wenn du nur auf einen Tastendruck warten willst, kannst du auch std::cin.get() verwenden, dann sparst du dir das Einbinden einer weiteren Lib:

    #include <iostream> // evtl. <iostream.h>
    
    int main(int argc, char* argv[])   {
       std::cout << "Hello World!\n"; 
       std::cin.get(); 
    
       return 0;
    }
    

Anmelden zum Antworten