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

  • dobragab

    addikt

    Javasolt valami whitespace-szel elválasztani a számokat. A scanf és társai ilyenkor nem tesznek különbséget egy ill. több különböző típusú whitespace között. Azaz ha a fájlban épp tabot vagy fájl végét sikerült használnod, azt is meg fogja enni space-ként.

    1 2 3 4 5
    6 7 8 9 10
    ...

    Az fscanf visszatérési értékét érdemes vizsgálni, ami a fájl végét illeti. Azt adja vissza, hány formátumsztringbeli értéket töltött fel sikeresen. Ha 5 számról volt szó, akkor sikeres beolvasásnál 5-öt ad vissza.

    Primitív példakód:

    int szamok[5];
    while(fscanf(fp, "%d %d %d %d %d", szamok, szamok+1, szamok+2, szamok+3, szamok+4) == 5)
    {
    // egy sor feldolgozása
    }

    Nem tudom, mennyire ismered a C-t, meg pontosan mit akarsz vele csinálni. Javasolt csinálni egy Lottoszam struktúrát, ha bármi komolyabbat csinálni kell vele. És lehet ciklusban olvasni az 5 db számot, csak akkor macerásabb a hibakezelés...

    Ha mind el kell tárolni, akkor ismét érdekes kérdés következik:
    1. ismerjük előre a darabszámot (fájl elejére oda van-e írva): VLA vagy malloc
    2. nem ismerjük: nyújtózkodó tömb, láncolt lista, maximális pufferméret, stb.

    Szóval ez a C legmacerásabb problémája.

    Tudom, tudom, akasszak a tökömre egy lámpát, hogy sötétben is tudjak kaszálni.

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