Was soll ich programmieren(Anfänger)?



  • Das klappt nicht, weil Du den Backslash im Pfadnamen nicht escapt hast.

    hFile=fopen("C:\highscore.txt","w");
    

    So müsste es gehen...

    hFile=fopen("C:\\highscore.txt","w");
    


  • Stimmt 'NickHappy', darauf hab ich in seinem Programm gar nicht geachtet! 💡

    In Windows ist das eh egal ob man "/" oder "\" schreibt und um nicht immer "\" schreiben zu müssen schreibe ich nur noch "/"! 😉



  • LukasBanana schrieb:

    In Windows ist das eh egal ob man "/" oder "\" schreibt und um nicht immer "\" schreiben zu müssen schreibe ich nur noch "/"! 😉

    Lieber Lukas,

    ich kann zwar nicht mit Sicherheit sagen, ob Du da Recht hast, weil ich ausschliesslich unter Linux arbeite. Aber ich könnte mir vorstellen, dass das vom verwendeten SDK abhängt. Wenn Du mit VC++ arbeitest ist das möglicherweise anders, als wenn Du g++ (MinWG, DevC++) verwendest. Vielleicht kann da mal ein Windows-Entwickler was zu sagen, der Fall interessiert mich jetz mal.

    Ist das Implementeirungsabhängig? Setzen die Gnu-Libraries den Slash bei Dateioperationen automatisch in einen Backslash um? Wie macht VC das?

    Grüsse
    emax

    PS: ich frage aus aktuellem Anlass: mein derzeitiges Projekt wird unter Linux entwickelt, soll aber portabel sein, Zielplattformen: Linux, AIX, Windows und (wirklich!) AS400.



  • 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.


Anmelden zum Antworten