C/C++



  • Hi Leute,
    Ich habe vor jetzt C/C++ zu lernen doch zuerst bräuchte ich Antworten auf ein paar Grundfragen, die mich nicht ruhen lassen:
    - Sind C und C++ zwei verschiedene Sprachen oder ist es eins, das einen Kombi-namen hat ?
    - Ich komme mit dem Compiler aus meinem Buch "C/C++ Von den Grundlagen zur professionellen Programmierung" (Studienausgabe von Ulrich Kaiser [verl. Galileo Computing]) nicht klar, da es eine einfache Linux-Konsole ist womit ich nicht viel anfangen kann. Der name des Compilers ist übrigens: cygwin; Also kam ich noch nicht dazu mir die zweite Frage selber zu beantworten. Ist es auch eine 32bit Oberfläche wie bei Delphi oder VB, auf die man Module und Buttons etc. draufsetzen kann, oder ist es einfach nur wie BASIC oder PASCAL ?
    - Könnt ihr mir einen Compiler als noob empfehlen ? Ich hab mir mal jetzt Dev-C++ runtergeladen und gehe die F1-Hilfe durch.
    Wäre nett wenn mir jemand die paar Fragen beantworten kann,
    MfG Schrei aka berocked.de



  • Es gibt, bis auf eine Ausnahmen, meines Wissens nur IDEs ohne Point and Click Möglichkeiten, die Ausnahmen ist aber rein Kommerziell: VisualStudio.NET

    2. C ist eine Untermenge von C++

    3. Dev-C++ (mit MingW oder cgywin) ist schon der Beste, da er der Standardgetreuste Windowscompiler ist (meines Wissens nach)

    mfg
    Glamdring



  • IDE := ? So wie ichs jetzt aus dem Kontext verstehe IDE = Compiler ?
    Thx für die Erklärung.



  • Zum Pointen und Klicken gib es zwei bekannte:
    Borland C++ Builder Reihe (kommerziell)
    Microsoft Visual C++ Reihe (kommerziell)
    Beide benutzen zum Point und klick erstellen einen eigenen Win32API
    wrapper.
    Wenn man etwas nicht kommerzielles will empfiehlt sich VisualWX für wxWindows,
    eine plattformübergreifende API. (oder gtk)
    Allerdings muss man um mit solchen Klassenbibliotheken arbeiten zu können
    mehr oder minder gutes C++ können. -Es macht überhaupt keinen Sinn wenn du am
    Anfang versuchst ein Windows Fenster zu erzeugen.

    Lern C++ auf Konsolenebene und danach eine API.

    Ich empfehle auch Dev-C++, das benutzt mingw du kannst es allerdings auch auf
    cygwin umstellen, der ja besser sein soll.

    MfG Max



  • Also, zu deiner ersten Frage:
    Grundsätzlich sind C und C++ 2 verschiedene Sprachen.
    Jetzt gibt es leute, die C++ als Erweiterung C sehen und andere, die C++ als eine Eigene Sprache, losgelöst von C vestehen.
    Ich gehöre zu den letzteren. Mit C++ kann man Programme ganz anders aufbauen als mit C. Man kann C++ zwar auch wie C benutzen, aber das wäre nicht der Sinn der Sache. Stichwort Programmierparadigmen.

    Dev C++ ist sicher zu empfehlen. Am Anfang wirsd du dir wohl noch keine Entwicklungsumgebung "kaufen".



  • berocked.de schrieb:

    IDE := ? So wie ichs jetzt aus dem Kontext verstehe IDE = Compiler ?
    Thx für die Erklärung.

    Eine IDE ist eine Entwicklungsumgebung, die meisten IDEs beeinhalten einen Compiler, einen Linker, [EDIT]einen Texteditor[/EDIT] und noch eine Menge mehr.
    -Bei einer IDE musst du nicht über die Kommandozeile arbeiten.

    MfG Max



  • berocked.de schrieb:

    IDE := ? So wie ichs jetzt aus dem Kontext verstehe IDE = Compiler ?
    Thx für die Erklärung.

    Nicht ganz. Du kannst den Compiler auch ohne IDE (Integrated Development Environment) benutzen. Aber Mit einer IDE wie z.B.: Dev-C++ kannst du deine C++ Programme viel komfortabler schreiben. Durch Syntax Highlighting und Codevervollständigung wird dir vieles Erleichtert.
    Ausserdem kannst du mit einer IDE deine Programme Debuggen. Das hilft dir bei der Suche von Fehlern enorm.



  • Also erstmal thx für die vielen und schnellen Antworten, ich wollte nochmal betonen: Ich stehe ganz am Anfang! Ich kann zwar etwas Delphi, Pascal und Basic - C/C++ ist für mich jedoch neues Territorium und der cygwin Editor macht echt nur Angst weil das ist dasselbe als wenn ich "command" in Ausführen eingeben würde. In meinem Buch wird direkt auf die Programmierung eingegangen und nicht erst groß erklärt, wie wo was ist und wo man was eingibt um was zu kriegen. D.h. ich muss jetzt erst einen guten Einstieg finden und wenn ich den habe (nur die Grundlegenen Sachen), dann ist das Buch optimal.

    Ich hoffe es ist ok wenn ich jetzt hier mal mit ner weiteren Frage weiter mache, und zwar habe ich eben mal versucht folgendes zu Programmieren (Syntax kenne ich aus dem Buch):

    # include <stdio.h>
    # include <stdlib.h>
    
    main()
    { int summe; 
      int a;
      int b;
    
      a=12;
      b=13;
      summe= a + b;
      printf("Die Summe ergibt %d .", summe);
    }
    

    Dann hab ich auf den Compilen Button geklickt, er hat 0 fehler gefunden und scheinbar compilt. Aber es erscheint beim klicken auf "Execute" weder ein Dialog wo der Satz geprintet wird noch irgendeine Kommandozeilenartige Oberfläche wie in BASIC. Wo liegt mein Fehler ?
    (Ich muss erstmal verstehen wie was klappt, dann komme ich alleine mit dem Buch weiter)
    MfG berocked



  • füge mal SYSTEM("Pause"); am ende an.



  • Das Programm erinnert eher an ein C Programm als an ein C++ Programm.

    Kann es sein, dass die Konsole ganz kurz erscheint und dann sofort wieder verschwindet?



  • "erinnert" ist gut 😃 Das ist nichtmal gültiges C++.



  • c++eus schrieb:

    füge mal SYSTEM("Pause"); am ende an.

    Wow, vielleicht sollte mal ein extra Eintrag in die FAQ gepackt werden warum system("pause"); und Konsorten noch schlimmer sind als Geschwüre am Hintern, Karottensuppe und [hier noch was ekliges einfügen] zusammen. 🤡

    Andererseits würde das wohl auch niemand lesen der es nötig hätte... 🙄



  • Hey, was ist schlimm an Karottensuppe? 😉 Bzw. an system("pause") ... dass das unprofessionell und unportabel ist, darüber sind wir uns ja einig, aber für so kleine Anfängerprogramme wie die Summe zweier vorgegebener Zahlen ausgeben sollte es reichen. Ideal wär natürlich, wenn Konsolenfenster per default aufblieben, aber den Gefallen tut einem Windows ja nicht ...



  • An dieser Stelle erfüllt System(Pause); aber seinen Zweck. Und Plattformunabhängig braucht dieses Programm wirklich nicht sein.



  • Aha ok _das_ war ein C programm, wie sähe dass denn in C++ aus (ich habs übrigens in devc++ in c und in c++ compilen lassen. Es wird nichts geladen.
    Wäre vllt jemand so nett und erklärt mir warum SYSTEM("Pause"); und wie es in c++ aussehen würde ?



  • #include <iostream>
    using namespace std;
    
    int main()
    { 
      int summe;
      int a;
      int b;
    
      a=12;
      b=13;
      summe= a + b;
    
      cout << "Die Summe ergibt " << summe << ".";
    
      system("PAUSE");
    
      return 0;
    }
    

    Die Funktion system() führt Befehle des Betriebssystems aus; auf Windows-Rechnern
    beweirkt PAUSE, dass das laufende Programm angehlten wird. Du siehst von dem
    Programm nichts, weil kurz ein Konsolenfenster aufgeht, das Programm zu ende
    ist und es *sofort* wieder geschlossen wird - ohne dass du etwas gesehen hast.

    Hässlich ist das ganze, weil damit das Programm inkompatibel zu anderen
    Betriebssystemen wird. Für den Anfang würd ich das an deiner Stelle aber ohne
    schlechtes Gewissen benutzen.



  • [cpp]

    # include <stdio.h>
    # include <stdlib.h>
    using namespace std;
    int main()
    {
    int summe;
    int a;
    int b;

    a=12;
    b=13;
    summe= a + b;
    cout << "Die Summe ergibt" <<summe endl;
    cin.get();
    return 0;
    }
    ich programmier eigentlich nur unter c,aber etwas c++ kann ich auch...das müßte so hinauen...greets
    ciro



  • sorry!hab vergessen du mußt natürlich die iostream includieren....



  • Das Aktuelle C (ISO-C99) und C++ (ISO-C++98) sind zwei verschiedene Sprachen,
    C++ kann nur das was ANSI-C89 beherrscht. Neue Typen wiez.B. "long long" besitzt
    C++ nicht oder die dynamischen Built-in Arrays.

    In C könnte ein Programm wie folgt aussehen:

    main () {
     return 0;
    }
    

    In C++ könnte ein Programm wie folgt aussehen:

    int main () {
    }
    

    Beides ist zu dem jeweiligen Standard absolut konform und man sieht, dass sich
    beide Sprachen bereits in den einfachsten Minimalprogrammen unterscheiden.



  • Ich behaupte jetzt einfach mal ganz frech, dass gute C-Programme in der Regel
    auch C++ Programme sind (dies natürlich nur, wenn ANSI-C98 geschrieben wird;
    aber für ISO-C99 gibts doch noch kaum einen vernünftigen Compiler...) 🙂

    gruß,
    walker



  • c++eus schrieb:

    An dieser Stelle erfüllt System(Pause); aber seinen Zweck.

    Stimmt auch wieder.

    Nur heißt die Funktion weder SYSTEM noch System sondern einfach system... 😉


Anmelden zum Antworten