C-Programmierung mit DICE

  • C-Programmierung mit DICE

    Hallo,

    es hat mich endlich wieder gepackt das Commodore Fieber. Aber ich wollte endlich mal etwas anderes machen als immer nur spielen am A1200.

    Also habe ich mir gedacht ich versuche mich mal an C.
    Dabei habe ich mit einfachen Sachen angefangen. Dabei bin ich folgendes Problem gestoßen:

    Beim eingeben von Float variablen mit zum Beispiel scanf("%f",& zahl1); kommt es in der Shell immer zu Fehlermeldungen. Die Variable ist mit float zahl1; am anfang deklariert.

    Fehlermeldung : *scanf: %e.E.f.g.G use -lm (mathlib)

    Also dachte ich mathlib ich müsse die mathlib am anfang mit #include mit deklarieren. Das brachte eine Fehlermeldung vom Compiler.
    Bei der Ausgabe mit printf("%f", zahl); Kommt auch nicht die Zahl heraus, sondern nur <float>.

    Laut Suchmaschine meines Vertrauens sollte es richtig sein. Oder mache ich etwas falsch? Auch diese Seite brachte nicht die Erlösung.
    3x Commodore 64 II ; 1x Commodore 64 G ; 4x VC1541-II ; 1x VC1541c ; 1x Datasette 1530

    2x Amiga 500 ; 2x Amiga 1200 ; 1x C 128
  • warlord schrieb:

    Fehlermeldung : *scanf: %e.E.f.g.G use -lm (mathlib)

    Also dachte ich mathlib ich müsse die mathlib am anfang mit #include mit deklarieren.
    Die Fehlermeldung sagt es schon: "use -lm".
    Damit ist gemeint, dass die Math-Lib mit zum Programm hinzugelinkt werden muss, eben indem dem Compileraufruf am Ende "-lm" hinzugefügt wird. Mit "include" hat das nichts zu tun: Include sorgt beim Kompilieren nur dafür, dass Dein Programm die Funktionen der Library "kennt" - sie sind deswegen aber nicht im Programm enthalten, das macht erst der Linker.
    Yes, I'm the guy responsible for the ACME cross assembler
  • ja und das es um den linker geht ?
    ich bin schon ganz wuschig. neeeeeee halt pfeiff drauf
    lern assembler!

    nich boes gemeint, einfach nur im scope.

    ---- wobei mich die scopes von dem compiler wiederrum interressieren ..... ich laber:)
    Assembler!

    Edit: was zur Teufelin ist DICE ? .... siehste? ich bin auch ganz intressiert:)
    EditEdit: daybyters post gelesen: acHso AMIGA ... Frauenzeusch, Denise .... zu kompliziert:P

    @warlord ich wuerde dich auch mit denises addressen unterstützen
    VC20+2xC64+3 1/2(*g*)1541+Jede Menge kaputter 2164+CIA's.
    | Tweetme | acm3 | Humbug | Lyx | Art |

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jedzia ()

  • Hallo,

    also ein einfaches Bsp. wäre:


    #include <stdio.h>
    int main()
    {
    int zahl1,zahl2;
    float ergebnins

    printf("Zahl1:");
    scanf("%i",& zahl1);
    printf("Zahl2:");
    scanf("%i",& zahl2);
    ergebnis = zahl1 / zahl2;
    printf("\n\nErgebnis : %f", ergebnis);
    return 0;
    }

    Das ganze habe dan in Shell mit dcc -3.1 code.c -o code in den Compiler geschickt ohne Probleme.

    Wenn ich jetzt Mac Bacon richtig verstehe sollte ich dcc -3.1 code.c -Im code verwenden. Ich werde es morgen weiter probieren.

    @Jedzia
    Assembler würde ich liebend gern auf dem Amiga probieren habe dafür aber leider noch nichts Passendes im Netz gefunden.
    Wenn du Vorschläge oder Tips dazu hast, ich bin bereit.

    @daybyter
    Ich glaube meine Fortschritte sind noch zu klein um darüber etwas zu schreiben. Habe schon alleine einen Nachmittag gebraucht um alles zu Installieren.
    3x Commodore 64 II ; 1x Commodore 64 G ; 4x VC1541-II ; 1x VC1541c ; 1x Datasette 1530

    2x Amiga 500 ; 2x Amiga 1200 ; 1x C 128
  • warlord schrieb:

    Das ganze habe dan in Shell mit dcc -3.1 code.c -o code in den Compiler geschickt ohne Probleme.

    SuperIlu schrieb:

    warlord schrieb:

    Wenn ich jetzt Mac Bacon richtig verstehe sollte ich dcc -3.1 code.c -Im code verwenden. Ich werde es morgen weiter probieren.
    Die Option heisst nicht "-Im" (grosses ieh), sondern "-lm" (kleines el).
    Zum einen dies, und zum anderen muss es nur angehängt werden, der Rest der Zeile bleibt unverändert. Also:
    dcc -3.1 code.c -o code -lm
    Yes, I'm the guy responsible for the ACME cross assembler