Új hozzászólás Aktív témák

  • bepken

    veterán

    sziasztok,

    [link] - alábbi feladatot sikerült megoldanom, de mégsem tiszta néhány dolog, így inkább kérdezek :)

    az a verzió, ami működik:

    _______________________________________

    int amper( char *line)
    {
    char *tok, *amp;
    int szam, szorzo, eredmeny;

    tok=strtok(line, " ");
    szam=atoi(tok);
    amp=strtok(NULL, "\0");

    if((strcmp(amp, "A")) == 0){
    eredmeny = (szam);
    }
    if((strcmp(amp, "kA")) == 0){
    eredmeny = (szam*1000);
    }
    if((strcmp(amp, "mA")) == 0){
    eredmeny = (szam/1000);
    }
    return eredmeny;
    }

    az a verzió, ami valamiért nem:

    _______________________________________

    int amper( char *line)
    {
    char *amp;
    int szam, szorzo, eredmeny;

    sscanf(line, "%d %s", &szam, amp);

    // printf("szam: %d\tegyseg: %s\n", szam, amp);
    if((strcmp(amp, "A")) == 0){
    eredmeny = (szam);
    }
    if((strcmp(amp, "kA")) == 0){
    eredmeny = (szam*1000);
    }
    if((strcmp(amp, "mA")) == 0){
    eredmeny = (szam/1000);
    }
    return eredmeny;
    }

    gondoltam, csak gyorsabb volna egyetlen művelettel tárolni mindkét értéket. erre való az sscanf vagy tévedek? valamiért mégis kifagy a program ezzel a verzióval...

    tárgytalan, bocsi....az amp itt tömb, nem mutató.....

Új hozzászólás Aktív témák

Hirdetés