Keresés

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

  • Fire/SOUL/CD

    félisten

    válasz Briganti #571 üzenetére

    Hali!

    Az fscanf() arra is jó, ha változó darabszámú érték van soronként.... :K
    csak azért írtam a korábbi módszert, mert az egyik lehetőséget feltételeztem, azaz fix számú érték szerepel soronként. itt egy példa ami demonstrálja a másik lehetőséget.
    (nem a legszebb, de a legáttekinthetőbb :DDD )

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    FILE * FH;
    int szamok[9];

    if (!(FH=fopen("adat.txt","rt"))) {
    printf("Nem lehet megnyitni a fajlt...\nkilepes");
    exit(-1);
    }
    printf("%d",fscanf(FH,"%d;%d;%d;%d;%d;%d;%d;%d;%d;%d",
    &szamok[0], &szamok[1], &szamok[2], &szamok[3], &szamok[4], &szamok[5], &szamok[6], &szamok[7], &szamok[8], &szamok[9]));
    fclose(FH);
    return 0;
    }

    1. megnyitjuk a fájlt, ha nem lehet akkor hibával kilépünk
    2. beolvassuk az első sorát a SZAMOK tömb-be illetve kiíratom hogy hány adatot sikerült beolvasni
    3. lezárom a fájlt, kilépés

    ez utóbbi lehetőség nagyon fontos. Az fscanf visszad egy egész értéket, ami azt tartalmazza hogy hány darab adatot tudott beolvasni
    Ha az első sorban csak 1 adat volt, akkor 1-et ír ki, ha az első sorban 6 adat volt, akkor meg 6-ot ír ki a progi, stb, azaz tudod, hogy az adott sorban, hány adatod volt. Ezek bekerülnek a tömb-be, egy ciklussal végigjárva(aminek a ciklusszámlálója annyi, mint amennyit az fscanf() visszaadott) könnyen kikeresheted a legkisebbet.

    Ahhoz hogy ez menjen, persze kell tudnod, a szöveges fájlod egy sorában mennyi szám szerepelhet MAXIMÁLISAN. Ennyi elemszámú tömböt állíts elő és kész.

    Fire

    UI: bocs, hogy én is ide pakoltam a C-topic helyett... :R

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