Skocz do zawartości
Bartcislaw

[C] Wypisywanie liczb z pliku binarnego.

Rekomendowane odpowiedzi

Chcę aby wypisywało mi wszystkie liczby z pliku binarnego, zastosowałem pętlę for, potem chciałem spróbować z funkcją feof, aczkolwiek coś mi nie działa, ponieważ wypisuję mi tylko 1 liczbę z 4 dostępnych.

 

#include <stdio.h>

struct wpisywanie
{
    int ilosc;
    int liczby[4];
    float suma;
    float srednia;
};

struct wpisywanie a;

void wpisywanie1 ()
{
    int i;
    FILE *plik;
    float suma, srednia;
    plik = fopen ("liczby.dat", "wb");
    printf ("Ile liczb chcialbys zapisac do pliku binarnego?\n");
    scanf ("%d", &a.ilosc);
    printf ("Prosze o podanie tych liczb, zostana zapisane!\n");
    for (i=0; i<a.ilosc; i++)
    {
        scanf ("%d", &a.liczby);
        fwrite (&a.liczby, sizeof (struct wpisywanie), 1, plik);
        suma = suma + a.liczby;
    }
    fclose(plik);
}

void wypisywanie ()
{
    int i;
    FILE *plik2;
    plik2 = fopen ("liczby.dat", "rb");
    printf ("Przykladowe dzialanie programu:\n");
    /*while(feof(plik2) == 0)
    {
        fread (&a.liczby[i], sizeof (struct wpisywanie), 1, plik2);
        printf ("%d", a.liczby[i]);
    }*/
    for (i=0; i<a.ilosc; i++);
    {
        fread (&a.liczby, sizeof (struct wpisywanie), 1, plik2);
        printf ("%d", a.liczby);
    }
    fclose(plik2);
}

int main ()
{
    //wpisywanie1();
    wypisywanie();
    return 0;
}
Rozumiem to mniej więcej tak że tworzę strukturę w której przechowuję dwie zmienne. Jedna z nich to tablica w której umieszczam 4 cyfry (zakładając z góry) a następnie każdej z nich przyporządkowuje miejsce w określonym polu. Chcąc wyczytać je na ekran, tworzę pętle aby szła po poszczególnych miejscach i wypisywała mi dane liczby na ekran. W czym problem? Edytowane przez Frank

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra, ogółem to same a.liczby to bzdura, stąd też poprawiam, aczkolwiek to nie usuwa błędów. Jakikolwiek program który piszę nie pobiera mi wartości z pliku, a jak pobiera to piszę jakieś bzdury.

Edytowane przez Frank

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×