[C/C++] Bloodshed Dev-c++

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Calibo, 21. September 2009 .

Schlagworte:
  1. 21. September 2009
    Bloodshed Dev-c++

    Hi,
    Ich wollt mal fragen ob sich damit einer auskennt, fange grad an so einbisschen mit programmieren rum zuspielen und arbeite jetzt so ein Buch durch aber wenn ich zum beispiel den einfachen code


    #include <stdio.h>
    int main (void) {
    printf ("Hallo Welt\n");
    return 0;
    }

    eingebe bekomm ich zwar ein Komplimieren erfolgreich, bekomme aber wenn ich auf ausführen klick nichts angezeigt jetzt ist die frage : Why?
     
  2. 21. September 2009
    AW: Bloodshed Dev-c++

    Das Programm wird ausgeführ und beendet sich sofort wieder.
    Also siehst du nichts.

    Hast du schonmal versucht das Programm per CMD aufzurufen ?

    Seriouz
     
  3. 21. September 2009
    AW: Bloodshed Dev-c++

    Füge mal vor den "return 0;"
    ein, dann solltet es sich nicht beenden, sondern erst auf Tastendruck.

    Und wenn du Dev++verwendest, such die lieber eine neuere IDE aus, Dev ist zwar sehr schön, doch super alt und wird auch schon seit langen nicht mehr weiter entwickelt.
     
  4. 22. September 2009
    AW: Bloodshed Dev-c++

    Also erstmal danke bw ist raus wenn möglich

    wie öffne ich das in der consol den?


    Alles klar dann besorg ich mir mal was neues
     
  5. 22. September 2009
    AW: Bloodshed Dev-c++

    Code:
    #include<stdio.h>
    
    void main()
    {
     printf("Hallo Welt");
    
     getch();
    }
    

    Mit viod main umgehst du das return 0 und mit getch wartest du, bis ne taste gedrückt wird.


    *********************************************

    Jo, ich arbeite selbst mit Visual 6.0 und bin damit endlos zufrieden, besonders mit dem Addon Visual Assist X, damit wird dir viel Arbeit abgenommen und man blickt leichter durch den Code durch. Besonders kann man Parameter, Funktionen etc. mit Mauszeiger drüber und man weiß, wo das hin gehört und was das is


    Für die Avm:

    Code:
    #include<stdio.h>
    
    int main()
    {
     printf("Hallo");
    
     getch();
    
     return 0;
    }
    Mit dem return gibst du der Funktion den Wert 0 zurück => Programm klappt.
     
  6. 22. September 2009
    AW: Bloodshed Dev-c++

    Für den Tipp mit void main() sollte man dich steinigen.

    Niemals void main() benutzen!
     
  7. 22. September 2009
    AW: Bloodshed Dev-c++

    Wenn man weiß, wann man sie nutzen kann, um code zu ersparren, durchaus ( Ja, eine Zeile ) Du gehst einfach davon aus, dass das Programm klappt. Bei einem einfach printf Befehl geh ich davon aus.

    Als Tipp war es auch so gar nicht gemeint
     
  8. 22. September 2009
    AW: Bloodshed Dev-c++

    wieso nicht einfach:

    int main ();
    {
    cout << "Hallo Welt!\n";
    return 0;
    }
    bin zwar kein profi bis jetzt mit dem prog, aber scheint mir irgendwie einfacher zu sein.

    ihr dürft mich ruhig berichtigen

    PS: ich hab Visaul C++ 6^^
     
  9. 22. September 2009
    AW: Bloodshed Dev-c++

    cout ist kein (direkter) Befehl. Müsst du mit #include<iostream> einbinden. und du brauchst zudem noch : using namespace std; , weil cout nen globales Objekt ist. Ansonsten geht der Compiler auf Error.

    und niemals ein ; nach einer Funktion, ausser du sagst dem compiler, dass es die gibt, wenn die hinter der main funktion stehen = > deklinieren.

    Code:
    #include<iostream>
    
    using namespace std;
    
    int main()
    {
    
    cout << "Hallo" << endl;
    
    return 0;
    
    }
    Wäre dann so richtig.
     
  10. 23. September 2009
    AW: Bloodshed Dev-c++

    Nein, auch dann nicht. Ganz einfach.
    Das hat nicht's mit Meinungsverschiedenheiten zu tun, man tut es einfach nicht.
     
  11. 23. September 2009
    AW: Bloodshed Dev-c++

    Da muss ich remaL zustimmen. Es gibt einfach eine gewisse Syntax, die man sich angewöhnen sollte. Das ist besonders bei Anfängern wichtig, weil sie es ja erst lernen müssen und wenn man von Anfang an schlechte Syntax lernt, dann bekommt man das nie wieder raus!

    Genauso wie es schelchte Syntax ist, Label, break und continue zu benutzen!Das sind einfach sachen die sich nicht gehören.

    Die Variante mit getchar(); am Ende ist einfach die Beste, denn cout ist nicht C-Basic und deshalb wohl eher unpraktisch für einen C-Anfänger!

    greece
    C4rc4ss
     
  12. 23. September 2009
    AW: Bloodshed Dev-c++

    Bin ich geteilter Meinung. Da man nicht nur stur DIE Syntax ausm Buch auswendig lernen sollte, sondern sie auch verstehen, warum man sie benutzt.
    Dementsprechend muss man auch andere Syntaxen kennen (bzw. die Falsche)

    Mag für einen puren Anfänger ohne Kenntnisse nicht geeignet sein, gebe ich gern zu, aber ich hab C++ so gelernt, dass ich auch das alles kenne und warum man das so macht und nicht so! Finde ich persönlich wichtig. Ansichtssache, okay.

    und z.b. break; switch case schleifen ist wieder etwas anderes, also stempel es nicht als doof ab. besonders für Anfänger brauchbar.


    Code:
    #include<iostream>
    
    using namespace std;
    
    int main()
    {
    
    char ch_Auswahl;
    
    cout << "(I)ntro, (S)pielen, (O)ptionen, (B)eenden: ";
    
    cin >> ch_Auswahl;
    
    switch (ch_Auswahl)
    {
    case ('i'):
    {
    cout << "Intro" << endl;
    } break;
    
    case ('s'):
    {
    cout << "Spiel" << endl;
    } break;
    
    default:
    {
    cout << " failed" << endl;
    }
    }
    
    cout << "ende" << endl;
    
    return 0;
    }
    
    
    
    
    O und B fehlen und das mit großkleinschreibung hab ich nicht beachtet. geht nur darum, dass man es auch brauchen kann!
     
  13. 23. September 2009
    AW: Bloodshed Dev-c++

    Ok ich gebe zu bei Switch Ausweisungen ist break sinnvoll und auch eigentlich wichtig!
    Aber sollte man es z.B. hier nicht verwenden(bzw. so solte man es nicht verwenden!):
    PHP:
      for (  int i = 0 100 ; i += 2 ) {
     
    cout  <<  "Geben sie eine Zahl ein"  <<  endl ;
     
    cin  >>  zahl [ i ];
     if ( 
    zahl [ i ] ==  50  ) {
        
    cout  <<  "50 ist eine tolle Zahl hier hören wir auf"  <<  endl ;
        break;
     }
    }
    greece
    C4rc4ss

    //edit: Irre ich mich jetzt, oder muss die break-anweisung da nicht im Block drinne stehen also so:
    PHP:
    switch (  ch_Auswahl  ) {
    case (
    'I' ) {
        
    cout  <<  "Intro:"  <<  endl ;
        break;
    }

    }
     
  14. 23. September 2009
    AW: Bloodshed Dev-c++

    Mit break; springst du immer ausm Codeblock raus. Also hier dem switch{}. Wichtig ist nur, dass du aus switch rausspringst, da du ansonsten alle case'ses nacheinander durchläfust
     
  15. 23. September 2009
    AW: Bloodshed Dev-c++

    ich weiß ja ned wo ihr c++ lernt oder gelernt habt, aber eine switch-case anweisung sieht bei mir so aus:

    Code:
    switch(var) {
     case value:
     //stuff...
     break;
     case value2:
     //stuff
     break;
    }
    1. "case" is keine funktion, sondern erwartet einen ausdruck. die klamern die ihr setzt sind also teil des ausdrucks und nicht der funktion-call.

    2. "case" benötigt keinen code-block.
     
  16. 23. September 2009
    AW: Bloodshed Dev-c++

    1. Die runden Klammern () sind nicht Teil des Ausdruckes. Der Ausdruck wird zwischen den ' ' (hier die char, ansonsten kannst du die auch weglassen) geschrieben und die mit den () ergeben einen saubereren und übersichtlicheren Code. Jaja, ich mag es halt geordnet und sauber und es bringt bei großen Programmen mehr Vorteile oder bei ,,Gruppenarbeiten''.
    So verhält es sich auch mit den {} in der case-Anweisung. Nur sauber und ordentlich. Da sie nur zum stylen des Codes benutzt werden, kann hier auch break; folgen, wann es will. Es muss nur kommen, da ansonsten alles nach dem zutreffenden case ausgeführt wird, also auch alle nicht zutreffenden case'ses!

    2. Wir haben aber das Beispiel bei switch/case mit break; gemacht. Hast du das eventuell geschickt überlesen oder beziehst du dich auf C4rc4ss? Ansonsten versteh ich den Satz nicht xD.



    edit:

    Ich glaub so langsam schweifen wir zuweit vom Thema ab !
     
  17. 23. September 2009
    AW: Bloodshed Dev-c++

    Muss dich mal korrigieren sieht ja mal hässlich aus ^^
    So was nennt man nicht deklinieren sondern das ist eine Deklaration.

    Beispiel:
    Code:
    int Add(int a, int b); [B]//=> Deklaration[/B]
    
    int main(int argc, char* argv[])
    {
     int x = 5;
     int y = 10;
    
     [COLOR="Red"]int z = Add(x, y); [B]//=> Benutzung der deklarierten Funktion[/B][/COLOR]
    
     return 0;
    }
    
    int Add(int a, int b) [B]//=> Definition[/B]
    {
     return a + b;
    }
    
    Wenn man die Deklaration weglässt steht die Add-Funktion hinter der Benutzung (~wie DasBoeseLebt sagte) und wird vom Kompiller nicht gefunden, durch die Deklaration wird dem Kompiller am Anfang der Source Datei gesagt das die Funktion existiert und dass er diese wenn sie benötigt weiter im Code sucht.

    Das hat nix mit schlechtem Syntax zu tun, man sollte schon alle Befehle benutzen die man zur Verfügung gestellt bekommt, sind ja nicht einfach so erfunden worden, jedoch sollte man auf die Wahl dieser Achten um den Code übersichtlich zu halten.


    @remaL

    Hör mal Bitte auf, deine "Brainy"-Aussagen ohne Begründung zu machen! Danke!
    Eine Aussauge ohne Begründung führt oft zu Diskussion/Streiterei und bringt im Endeffekt keinem wirklich was.

    Warum man int main() immer (! ...) benutzen sollte liegt daran das dies STANDART ist und mit jedem Kompiller funktioniert (sollte). void main() wurde erst später eingeführt und deswegen kann dieser "Syntax" mit älteren Kompillern zu Fehlern führen, deswegen sollte man sich nicht daran gewönnen!


    Und letzten endlich mal B2T:

    Schon mal was von google, bing, yahoo etc. gehört? Ja bestimmt, ist aber zu schwer ne....

    Warum dein Code "nicht funktioniert" wurde ja mehr als genug gesagt.

    IDEs gibt’s auch zu häufen, ich würde jedoch eine mit integrierten Debugger empfehlen so kannst du auch von Anfang an lernen wie man nach Fehlern sucht und diese Analysiert.
    Visual Studio ist eine gute wahl der sollte auch ab einer bestimmten Version auch einen guten Debugger haben.

    Ach ja hier [G]Debugger[/G]

    Mfg Rushh0ur
     
  18. 23. September 2009
    AW: Bloodshed Dev-c++

    Hätt ja nicht gedacht das ich mit einem Hello World code so viel Diskussions Atmosphäre schaffe. =)
    sehr interessant!

    Weiß zwar noch nicht worüber ihr da genau redet werde es aber hoffentlich bald.


    Edit noch ne frage das hier hab ich auch von euch Galileo Computing :: C von A bis Z

    ist das gut für einen anfänger?
     
  19. 23. September 2009
    AW: Bloodshed Dev-c++

    C: Programmieren von Anfang an: Amazon.de: Helmut Erlenkötter: B&uuml;cher

    Soll ganz gut sein. Sogar sehr gut.

    Interessant wäre, in welche Richtung du gehen willst.

    Und Finger weg von Internet tutorials am Anfang. Da scrollst du nur und denkst, dass du das auch so gemacht hättest. LernEffekt = NULL ! Buch nehmen , durcharbeiten und viel testen von selbst.
     
  20. 23. September 2009
    AW: Bloodshed Dev-c++

    nene, der ausdruck fängt mit den klammern an, da klammern ja überall bei ausdrücken valide sind. deswegen wirft dir der compiler an der stelle auch keinen fehler

    (1+1) => 2 => ausdruck
    ("foo") => "foo" => ausdruck

    das macht keinen unterschied was in den klammern steht, der inhalt wird reduziert und, falls vorhanden, die nächste operation durchgeführt (zb eine weitere berechnung im übergeordneten ausdruck).

    probier mal das:
    Code:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
     switch(true) {
     case (2 + 3) * 2 == 10:
     cout << "wtf!" << endl;
     }
     
     return 0;
    }
    
    
    würde das case-label jetzt nur die sachen in den klammern auswerten, käme hier wohl ein syntax-error

    genauso wie klammern in ausdrücken erlaubt sind, sind diese {} auch über ausrücken erlaubt.

    diese {} nennt man (oder ich) "code-blocks", weil man darin weitern code definieren kann (einen block voll mit code eben, den man in den gängigsten editoren so schön falten kann ^^).
    bei machen scriptsprachen erzeugen solche code-blocks einen erbenden context, welcher nur innerhalb des blocks gültig ist. (javascript und seine let-variablen z.b)

    aber wie dem auch sei, wenn es deiner übersicht dient -> okay
    bei interpretierten und zeitkritischen sprachen wie php sind solche sachen no-go's, da jedes dieser zeichen erst vom scanner gelesen, in nen token umgewandelt und anschließend in den parser-tree gepusht wird (und je mehr solcher tokens, desto länger dauerts halt).

    bei kompilierten sprachen is das nicht der fall, weil da noch n code-optimizer und lauter so sachen vor und hinterher kommen. (denk ich ma das sowas dann egal is) -> da kann man sich zeit lassen
     
  21. 23. September 2009
    AW: Bloodshed Dev-c++

    Wir sind hier aber bei C bzw. C++ , keine Scriptsprachen etc. Aber ich weiß, was du meinst und versteh es auch
     
  22. 24. September 2009
    AW: Bloodshed Dev-c++

    Ich weiß zwar das ihr schon lang irgendwo anderst seid , doch was ist mit dem alten schönen

    Code:
     System("Pause") 
    Programmiere schon seit längerem nicht mehr in C++, doch das hat bei mir immer seinen Dienst getan, oder ist das jetzt aus der Mode ?
     
  23. 24. September 2009
    AW: Bloodshed Dev-c++

    Naja also schön ist das auch nicht gerade auch nicht. Vorallen weil dann aus deinen Prozess einen neuen Prozess erzeugst.
    Bei so kleinen Sachen macht das noch nichts, doch mal sollte es sich garnicht erst angewöhnen, das bekommt man später nie aus einen raus.
     
  24. 25. September 2009
    AW: Bloodshed Dev-c++

    Ich habe damals mit Borland C++ Builder gearbeitet und kann es nur empfehlen.
     
  25. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.