Hirdetés

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

  • Jester01
    veterán

    A build messages-be eddig is írta hogy "x errors, x warnings", szóval az oké.
    Más: hogy lehet bekérni két egyjegyű számot így: "x y" és azt eltárolni két int formájában (n = x, m = y)? Már mindent kipróbáltam, a legjobb eredmény, hogy az első számot eltárolja, de a második helyére y-on kívül több számjegy kerül.
    #include <stdio.h>

    int main(){
    int i,n,m;
    char kar[4];
    char en,em;
    fgets(kar,4,stdin);
    en = kar[0];
    em = kar[2];
    printf("%c %c\n",en,em);
    n = atoi(&en);
    m = atoi(&em);
    printf("%d\n",n);
    printf("%d",m);
    return 0;
    }

    az első printf is értelmes dolgokat ad ki, de utána az atoi-nál elromlik valami, és plussz számok jönnek be...

    Itt csak az a baj, hogy az atoi-nek string kell, ami C-ben nulla byte-tal lezárt karaktertömböt jelent. Több lehetőséged is van. Talán a legegyszerűbb, ha a kar[1]-et nullázod. Ekkor ugye így fog kinézni a tömb { x, 0, y, 0 } (a végére az fgets tette a nullát). Ilyenformán a konverzióhoz simán megadhatod az &kar[0] illetve &kar[2] pointereket (ami ugyanaz mint a kar ill. kar+2).

    Másik lehetőség egy számjegyű számok konvertálására ha simán levonod belőle a 0 ascii kódját, pl. n = en - '0';

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