Hiiiiilfe...



  • Hallo zusammen...

    Habe hier dieses Programm und verstehe einige Dinge nicht... hoffe jemand kann mir helfen!

    Was macht:
    - gets (ss)
    - if ((sscanf (ss, "%ld", &menuEntry)==1) && (menuEntry >= 1) && (menuEntry <= 3)){

    Wäre wirklich froh wenn mich mal jemand aufklären könnte!

    Beste Grüsse

    Hier noch das ganze Programm:

    #include <cstdlib>
    #include <iostream>

    #include "benzin.h"

    using namespace std;

    int main(int argc, char *argv[]){
    int menuEntry=0;
    int e;
    char ss[64];
    t_verbauch t;

    while (menuEntry != 3){
    // Menu ausgeben und Wahl des Benutzers einlesen
    printf ("Protokoll fuer Benzinverbrauch:\n");
    printf ("------------------------------------\n");
    printf ("1. Verbrauch eingeben\n");
    printf ("2. Protkoll ausgeben\n");
    printf ("3. Ende\n");
    printf ("==> ");
    gets (ss);
    printf ("\n\n");

    if ((sscanf (ss, "%ld", &menuEntry)==1) && (menuEntry >= 1) && (menuEntry <= 3)){
    switch (menuEntry){
    case 1: printf("Eingabe Datum:\n-->");
    gets (t.datum);
    printf("Eingabe der getankten Liter:\n-->");
    gets (ss);
    sscanf (ss, "%d", &e);
    t.liter = e;
    printf("Eingabe der gefahrenen Kilometer:\n-->");
    gets (ss);
    sscanf (ss, "%d", &e);
    t.kilometer = e;
    benzin_add(t);
    break;
    case 2: benzin_print();
    break;
    }
    }
    }
    return EXIT_SUCCESS;
    }

    #ifndef _benzin_
    #define _benzin_

    struct t_verbauch{
    char datum[11];
    int liter;
    int kilometer;
    };

    void benzin_add(t_verbauch);
    void benzin_print();

    #endif

    #include <iostream>
    #include "benzin.h"

    void benzin_add(t_verbauch v){
    FILE *f;
    float durchschnitt;

    durchschnitt = (float(v.liter) / v.kilometer) * 100;

    f = fopen("benzin.txt","a");

    fprintf(f,"%s %03d %04d %04.1f\n",v.datum,v.liter,v.kilometer,durchschnitt);

    fclose(f);

    }

    void benzin_print(){
    FILE *f;
    char line[256];

    f = fopen("benzin.txt","r");

    if(f!=NULL){
    while(fgets(line, 256, f)){
    printf("%s",line);
    }
    }

    fclose(f);

    }



  • Mit gets(ss) lässt du den Benutzer eine Eingabe machen (gespeichert in ss). Mit sscanf wird die im String eingegebene Zahl (wenn vorhanden) in menuEntry gespeichert. Ist nun in menuEntry eine Zahl, und liegt diese zwischen 1 und 3, dann wird die Case-Anweisung ausgeführt. Je nachdem, welchen Menüeintrag der Benutzer gewählt hat, wird ein anderer Case-Zweig ausgeführt.



  • Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC (Visual C++) in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten