Problem mit scanf und anschließender Ausgabe



  • Danke SeppJ,

    wie ich sehe sollte ich meine Quellen wirklich nocheinmal überdenken und der Fehler mit dem Code wird nicht wieder vorkommen.



  • Alles klar. In Zukunft passe ich mehr auf.

    Beim Tutorial dachte ich, dass es gut ist. Mein Informatiklehrer welcher uns auch im Unterricht C beibringt hat es uns aks Vorlage gegeben.

    Hättet ihr dann vielleicht ein gutes Tutorial für uns?
    Das würde uns beiden wohl ganz gut tun.

    Und MagnumOpus, entschuldige bitte meinen Quark. 😃


  • Mod

    Ich fürchte, mir ist kein gutes, deutschsprachiges Tutorial für C bekannt. Das liegt an folgendem: Wer schreibt Tutorials? Leute, die denken, sie hätten Ahnung. In der Regel Anfänger, nach Lektüre ihres ersten Buches. Denn ein Tutorial schreiben und veröffentlichen kann jeder.
    Was machen die Leute, die wirklich Ahnung (und didaktisches Vermögen!) haben? Wenn sie sich derart viel Arbeit machen, ihr Wissen weiter zu geben. Dann schreiben sie ein Buch. Denn wenn sie wirklich gut sind, dann wird das auch verlegt. Meistens schreiben sie dann auch auf Englisch, weil sie somit mehr Leser erreichen und/oder selber Muttersprachler sind.

    Die Empfehlung ist daher wohl, sich die Übersetzung eines englischsprachigen Fachbuches zu besorgen. Z.B. den K&R. Oder besser gleich das Original. Solche Standardwerke sollte es auch in vielen Bibliotheken geben.



  • Danke für deine Antwort.
    Generell habe zumindest ich keine allzu großen Schwierigkeiten mit Englisch. Ich werde mich dann mal ein wenig umschauen und gegebenenfalls nochmal hier im Forum nachfragen. Ich möchte mich ja nicht wieder verkaufen.



  • So ich habs endlich fertig. Es hat länger gedauert als ich gedacht habe ( hatte noch weiter Schwierigkeiten wie statt nem Komma benutzt man ja nen Punkt bei Fließkommazahlen 😡 ) aber ich bin stolz nach 3 Stunden fertig zu sein. Hier ist es.

    #include <stdio.h> 
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
        int Geburtstag, Geburtsmonat, Geburtsjahr;
        int Heutigertag, Heutigermonat,Heutigesjahr;
        int Jahregelebt, Monategelebt;
        double Wochengelebt, Tagegelebt, Stundengelebt, Minutengelebt, Sekundengelebt;
    
        printf("Hallo, diese Programm wird deine verlebt Lebenszeit ermitteln.\n\n");
        getchar();
    
        printf("Bitte geben sie ihr Geburtsdatum an [TT.MM.JJJJ]:");
        scanf("%d.%d.%d", &Geburtstag, &Geburtsmonat , &Geburtsjahr);
    
        printf("\n\nGeben sie bitte das heutige Datum ein [TT:MM:JJJJ]:");
        scanf("%d.%d.%d",&Heutigertag ,&Heutigermonat ,&Heutigesjahr);
    
        Jahregelebt = Heutigesjahr - Geburtsjahr;
        Monategelebt = (Jahregelebt * 12) + (Heutigermonat - Geburtsmonat);
        Wochengelebt = Monategelebt * 4.34812141;
        Tagegelebt = Wochengelebt * 7;
        Stundengelebt = Tagegelebt * 24;
        Minutengelebt = Stundengelebt * 60;
        Sekundengelebt = Minutengelebt * 60;
    
        printf("Jahre:%d\n\n",Jahregelebt);
        printf("Monate:%d\n\n",Monategelebt);
        printf("Wochen:%04lf\n\n",Wochengelebt);
        printf("Tage:%04f\n\n",Tagegelebt);
        printf("Stunden:%04f\n\n",Stundengelebt);
        printf("Minuten:%04f\n\n",Minutengelebt);
        printf("Sekunden:%04f\n\n",Sekundengelebt);
        getchar();
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    


  • Du kannst auch das heutige Datum vom Programm ermitteln lassen:
    Mit time erhälst du die aktuelle Zeit, mit localtime konvertierst du sie zu tm. Damit kannst du dann die benötigten Informationen ermitteln.



  • Sehr geil. Ich hatte schon an sowas gedacht aber hab mir dann überlegt das dass mit den Mitteln die ich bis jetzt kenne wohl er nicht möglich ist.
    Muss ich unbedingt noch einbaun.



  • @SeppJ: mich würde interessieren, warum du das Tutorial http://www.c-howto.de für schlecht hältst, denn ich habe es mir mal angeschaut und finde es recht ansprechend gemacht und sehe auch inhaltlich keine Fehler.
    Und schließlich gibt es dieses Tutorial ja auch als Buch - d.h. warum sollte ein anderes Buch dann besser sein?

    Mir ist klar, daß man mit einem Tutorial nicht den gesamten Sprachschatz (+ alle Standard-Lib-Funktionen) abdeckt, und man daher dann bei K&R o.ä. weiterlesen sollte. Um aber den Einstieg in C (+ Entwicklungsumgebung) zu finden, sollte es ausreichen.


  • Mod

    Die direkt verlinkte Seite hat völligen Quatsch zum Thema "Entertasten" und "Tastaturpuffern" beschrieben. Siehe oben. Danach habe ich gar nicht weiter gelesen.

    P.S.: Ich habe mal ein bisschen durch das Tutorial geblättert. Einige weitere Fehler gefunden. So etwas darf nicht sein.
    Außerdem ist es viel zu knapp, um damit C zu lernen. Nenn mir eine Person, die nach dem Lesen das Kapitels über Arrays damit in C umgehen kann. Wichtige Sonderfälle wie der Array to Pointer Decay werden nicht einmal erwähnt!



  • Th69 schrieb:

    Mir ist klar, daß man mit einem Tutorial nicht den gesamten Sprachschatz ...

    So umfangreich ist C nun auch wieder nicht.

    Th69 schrieb:

    ...(+ alle Standard-Lib-Funktionen) abdeckt, ...

    Da es auch nicht so viele sind, kann man sie aber kurz erwähnen.

    Es wird überhaupt nicht auf mögliche Probleme und Fallen eingegangen.
    Weder allgemeine Probleme noch spezielle bei C.

    Gleich die ersten Beispiele sind Müll:
    - Telefonnummern als int-Variablen
    - Finanzberechnung mit float


Anmelden zum Antworten