Was soll ich programmieren(Anfänger)?



  • Hallo "emax",

    Das du unter Linux arbeitest find ich echt klasse, ich will selbst bald von Windows abkommen, hab auch schon unter VMWare Workstation mein kleines KnopixLinux laufen! 🙂

    Ich arbeite mit "GnuC++"! In GnuC++ schneit das mit dem Slash oder Backslash egal zu sein, auch in PureBasic und Blitz3D ist das unwichtig!
    Wie dass in VisualC++ aussieht weiß ich nicht aber vermutlich ist das Windows allgemein egal, dafür ist Windows ja auch bekanntlich langsamer als Linux! 😉



  • Windows versteht auch normale Slashes... einfach mal in der Kommandozeile (CMD.EXE) benutzen. Kein Problem. Hat nichts mit dem Compiler zu tun...



  • 😡
    Was soll der C-Scheiß in einem C++-Forum? Entweder ihr verschiebt dieseb Thread oder lasst den Müll hier raus. Ist ja grausam. Und dann noch C++-Header nutzen und meinen das die rein müssten ... klar.

    #include <iostream>
    #include <fstream>
    
    int main() 
    {
        std::cout << "Mein Programm" << std::endl;
        std::ofstream file_stream("C:\\Test.cpp", std::ios::out);
        if (!file_stream)
            return 1;
    
        file_stream << "Das ist ja nen ulkiger Text!!!";
        file_stream.close();
        return 0;
    }
    

    deine C-Variante braucht den Header cstdio

    #include <cstdio>
    


  • Man danke!!!!
    Hab net gedacht dass ich des noch hin bekom.
    Jetz weiß ich au warum des dafor net geklappt hat.
    Hab erst gedacht bin zu blöd dafür. 😕
    Und braucht euch net zu wundern warum ich manchmal mit nem anderen Namen zurückgeschrieben hab(shorty080(2))des lag daran dass ich verrafft hab dass man
    sich erst einloggen muss :p .



  • (D)Evil schrieb:

    😡
    Was soll der C-Scheiß in einem C++-Forum? Entweder ihr verschiebt dieseb Thread oder lasst den Müll hier raus. Ist ja grausam.

    hör auf zu jammern. 👎
    in c++ geht beides.



  • in c++ geht beides.

    Ja, manchmal tut mir das Leid. Ich gebe (D)Evil schon Recht, C Code hat nun wirklich nichts in C++ Code zu suchen, das ist absolut schlechter Stil. C und C++ sind zwei eigenständige Sprachen. Beide extrem zu vermischen ist wirklich keine gute Lösung, und es gibt bessere Alternativen. 👎

    MFG mikey.



  • mikey schrieb:

    Ja, manchmal tut mir das Leid. Ich gebe (D)Evil schon Recht, C Code hat nun wirklich nichts in C++ Code zu suchen, das ist absolut schlechter Stil.

    ich sehe das anders. der zweck heiligt die mittel. in c++ gibt es viele möglichkeiten ein und das selbe zu erreichen. wenn eine c-ähnliche lösung perfekt passt - warum nicht? schlechter stil ist es viel mehr, krampfhaft nach wegen zu suchen, ein c++ programm nicht c-ähnlich aussehen zu lassen...
    🙂



  • Vista! Nur weil du kein C++ kannst, müssen wir hier im C++-Forum keine C-Lösung behandeln. Macht das im C-Forum, sonst hat die Aufteilung NULL Sinn. Und lies mal die Forumsbeschreibung. Der Spruch "Zweck heiligt die Mittel" ist absolut fehl am Platz. Weil wenn es danach geht, kann man gleich alles in Assembler machen. Ach? Ist doch nicht so sinnvoll, wenn man doch C hat? Genauso verhält es sich mit C und C++. Also, lasst den C-Kram hier aus dem Spiel. Danke!



  • Artchi schrieb:

    Vista! Nur weil du kein C++ kannst, müssen wir hier im C++-Forum keine C-Lösung behandeln.

    nein, mit mir hat es nichts zu tun. in c++ gibt es vieles was es auch in c gibt. komplett auf alles c-ähnliche zu verzichten ist einfach nur töricht!

    Artchi schrieb:

    Macht das im C-Forum, sonst hat die Aufteilung NULL Sinn.

    die aufteilung macht sinn, weil c und c++, trotz ihrer verwandschaft, zwei eigenständige sprachen sind.

    Artchi schrieb:

    Weil wenn es danach geht, kann man gleich alles in Assembler machen.

    nein, denn assembler hat mit c++ nichts zu tun.



  • Ist schon sinnvoll, das Forum ordentlich zu organisieren. Es sieht aber so aus, als hätten wir's bei den Fragestellern hier mit Anfängern zu tun - die offensichtlich C++ lernen möchten.

    Und in diesem Kontext ist es sogar fruchtbar, dass hier die Unterschiede gezeigt werden, wie sollen Sie's denn sonst lernen?



  • Jupiii, Flamewar !

    nein, mit mir hat es nichts zu tun. in c++ gibt es vieles was es auch in c gibt. komplett auf alles c-ähnliche zu verzichten ist einfach nur töricht!

    Ja klar. Deswegen ist es auch ein Grund, gleich ganz auf die I/O Streams von C++ zu verzichten (dann aber trotzdem noch iostream zu inkludieren, wohlgemerkt), und stattdessen printf herzunehmen ?? Das ist doch totaler Schwachsinn.

    Wir können uns noch lange drüber streiten, aber hier merkt man, dass es sich noch um Anfänger handelt.

    Hey komm, das ist doch komplett C, mit Ausnahme von <iostream>

    #include <iostream> 
    
    int main(void) { 
        FILE *hFile; 
        if (hFile = fopen("MyFile.txt", "w")) { 
            fprintf(hFile, "Dieser Text wurde von einem C Programm erstellt!"); 
            fclose(hFile); 
        } 
        return 0; 
    }
    

    MfG mikey.



  • mikey schrieb:

    Ja klar. Deswegen ist es auch ein Grund, gleich ganz auf die I/O Streams von C++ zu verzichten (dann aber trotzdem noch iostream zu inkludieren, wohlgemerkt), und stattdessen printf herzunehmen ?? Das ist doch totaler Schwachsinn.

    du hast nicht verstanden, was ich sagen wollte 😉
    ich habe nichts dagegen, wenn anfänger auf fehler hingewiesen werden.

    Hey komm, das ist doch komplett C, mit Ausnahme von <iostream>

    ja, aber in c++ funktioniert es auch (bis auf diesen kleinen mangel mit dem header).



  • <iostream> scheint hier auch versehentlich zu stehen 🕶

    Ich find's ziemlich sinnlos, sich hier die Köpfe heisszureden, dass nützt den staunenden Fragestellern gar nichts.

    Da ja ganz offensichtlich nach C++ informationen gesucht wird, wär's doch sicher sinnvoll, die Jungs mal aufzuklären, um was es eigentlich geht. Ich versuchs mal.

    "fopen" ist eine Funktion aus der C standard-Bibliothek. Man verwendet sie in C-Programmen um Dateien zu öffnen, kann sie aber auch in C++ verwenden, es ist nicht verboten und technisch gesehen auch unproblematisch. Allerdings bietet C++ für soetwas viel leistungsfähigere Methoden an. Die wurden weiter oben schon beschrieben, weshalb ich sie hier nicht nochmal runterschreibe.

    Wer C++ lernen möchte, sollte versuchen, die Möglichkeiten, die C++ bietet, auch zu nutzen. Es gibt sicher ab und zu gute Gründe, auch mal auf "klassische" C-Funktionen zurückzugreifen, man sollte aber wissen, welche Funktionen eigentlich woher kommen.

    Im Fall von Dateien bietet C++ sehr leistungsfähige Klassen an, mit deren Leistungsumfang die alten C-Funktionen einfach nicht mithalten können. Es ist deshalb besser, sich konsequent mit diesen Möglichkeiten auseinander zu setzen, und sich in die Funktionalitäten von "Streams" einzuarbeiten.

    In Goggle findet man dazu auf Anhieb auch etwas Deutsche Dokumentation, zum Beispiel hier:

    http://www.mathematik.uni-marburg.de/~cpp/inhalt.html

    Kapitel 15 handelt von Dateien, das hilft sicher erst mal weiter.



  • ja, aber in c++ funktioniert es auch (bis auf diesen kleinen mangel mit dem header).

    Du kapierst das nicht ! Das ist KEIN C++ mehr. Deshalb gehört es sich nicht in dieses Forum, und auch nur deshalb reagiert hier jeder (bis auf dich) gereizt auf diese Aktion.



  • mikey schrieb:

    Du kapierst das nicht ! Das ist KEIN C++ mehr.

    nein, du kapierst es nicht.
    lies einmal was emax (direkt über deinem posting) geschrieben hat.



  • Hab ich gesagt, dass es verboten ist, z.B. fopen () in einem C++ Programm herzunehmen ? - Nein.

    Hab ich gesagt, dass es problematisch ist, z.B. fopen () in einem C++ Programm herzunehmen ? - Nein.

    Ich habe aber gesagt, dass es schlechter Stil ist, C mit C++ zu vermischen, und in diesem Punkt wiedersprechen wir uns. In (fast) jedem C++ Tutorial steht (nein, sogar in meinem C++ Buch), dass es unsauberes Programmieren ist, wenn man beide Sprachen mischt (bis zu einem gewissen Umfang geht es ja noch).

    MfG mikey.



  • @Vista! Du bist einer von denen, die meinen, die Sprache über die wir hier reden heißt C/C++. Die Sprache C/C++ gibt es aber nicht! Es gibt nur C und nur C++. C++ hat nur aus einem Grund auch C-Funktionen: Marketing! Man will damit C-Programme bzw. deren Programmierer nach C++ "locken". Kannst du in Bjarne Stroustrups Buch nachlesen! Niemand von den C++-Programmierern ist in Wirklichkeit glücklich über die C-Altlasten in C++. Aber ohne diese Altlasten, wäre C++ wohl niemals so erfolgreich geworden. Es hört sich paradox an, es ist aber so. C-Funktionen in C++ sind nicht drin, um sie trie lalla zu benutzen. Sie sind drin, falls sie jemand benutzen MUSS. KEIN C++-Anfänger muß aber C-Funktionen benutzen. Warum? Weil er kein altes C-Programm hat, das er nach C++ migrieren muß/will. (sonst wäre er kein Programmier-Anfänger) Wer in C++ einsteigt, will C++ lernen. Wenn jemand C lernen will, soll er bitte C lernen. Und das mit allen Konsequenzen: C-Lehrbuch kaufen und im C-Forum Fragen stellen. Wer C++ lernen will: C++-Lehrbuch kaufen und im C++-Forum Fragen stellen. So einfach ist das.



  • mikey schrieb:

    Hab ich gesagt, dass es verboten ist, z.B. fopen () in einem C++ Programm herzunehmen ? - Nein.

    Hab ich gesagt, dass es problematisch ist, z.B. fopen () in einem C++ Programm herzunehmen ? - Nein.

    Mikey,

    was ich da oben geschrieben habe, ging nicht an Deine Adresse, ich beteilige mich nicht an solchen Kabbeleien. Es war an die Fragesteller gerichtet, sonst nichts.

    Grüsse
    emax



  • Mein Post war auch nicht an dich adressiert, sondern an vista 😉
    Jetzt aber Schluss mit diesen Albereien ...



  • Mal zurück zur Frage...
    Also mit Dateien hast du ja verstanden denke ich, wenn nicht schau mal in diese Tuts:
    http://www.mathematik.uni-marburg.de/~cpp/
    http://web.dadanini.com:7980/books/C++ in 21 Tagen/inhalt.html
    Die sind vielleicht schon etwas älter, aber erklären !C++! ganz gut, wenn was nicht funtzt musst du hier fragen oder bissel googlen. Gut ist halt, dass du die Funktionen erklärt bekommst und sich oft nur ein bissel was an der Variablenübergabe bzw. leicht an der Syntax sich gänder hat.

    Zur KI:
    Hab sowas auch mal bei Delphi angefangen zu proggen(Grafik war da um einiges einfacher, wer Delphi kennt: hab einfach 16Memos genommen :D).
    ALso wichtig ist, dass du eine gut-funktionierende "WerHatGewonnen"-Funktion hast und der Übergang von PC und Mensch gut von statten geht. Da hatte ich große Probleme.
    Die KI hatte ich dann irgendwann aufgehört zu proggen, wurd einfach zu viel/schwer.

    Aber mein Plan sah so aus:
    Ich erstelle eine dynamische Liste von allen Möglichkeiten die in der nächsten Zeit passieren könnten (alle wären zu viel)[dabei ist halt schwer zu sagen was "die nächste Zeit" ist] und gehe die rekursiv ab, vergeben für Möglichkeiten Punkte und die Möglichkeit mit den höchsten Punkten wird ausgeführt. Wenn welche gleichviele Punkte haben random();
    Der Rechner kann sich dann diese Möglichkeit merken und versuchen diese durchzuarbeiten, sprich für diesen Pfad gibts beim nächsten rekusiven Durchlauf der List kA +1 Punkt, sodass die Chance diesen zu nehmen höher ist als andere Strategien, aber nicht so hoch, dass er sich selber "opfer", also eine Reihe vom Spieler voll werden lässt. So kann man relativ einfach Strategien dem PC beibringen

    Das Problem ist halt, dass du relativ viele Fehler abfangen musst und das eine fülle von if-Anweisung wird, war jedenfalls bei mir so.


Anmelden zum Antworten