[C] Niepoprawny odczyt danych z pliku

mati861
Użytkownik
Użytkownik
Posty: 80
Rejestracja: 3 wrz 2012, o 10:37
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 3 razy
Pomógł: 18 razy

[C] Niepoprawny odczyt danych z pliku

Post autor: mati861 »

Piszę program którego zadaniem będzie odczytanie z pliku slownik.txt jego zawartości i umieszczenie jej w tabeli, a następnie wypisanie jej zawartości. W pliku slownik.txt znajduję się treść cat_kot_50.
Niestety, z jakiegoś powodu cały czas wyświetla mi się tablica samych zer. Proszę o pomoc.
A oto kod:

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#define MAXW 100
#define MAXL 10
/* zmienne globalne*/
char slownik[MAXL][3][MAXW];

/*funkcje*/
int pobieranie(void);
int wypisz(void);

int main()
{
FILE *wr1;

	pobieranie();
	wypisz();
    return 0;
}


int pobieranie()
{
int i,j,l=0,sign;
FILE *w;
w = fopen("slownik.txt", "r");
for(i=0;i<100;i++)
{
if(fgetc(w)==EOF) break;
for(j=0;j<3;j++)
{
while((sign=fgets(sign,1,w)) != '_')
{
slownik[i][j][l]=sign;
l++;
}

}

}
return 0;
}

int wypisz(void)
{
int i,j,l;
for(i=0;i<MAXL;i++)
{
for(j=0;j<3;j++)
{
for(l=0;l<MAXW;l++)
{
printf("%d",slownik[i][j][l]);
if(slownik[i][j][l]=='\0') break;
}
printf(" ");

}
printf("\n");
}

}

Będę bardzo wdzięczny za pomoc.
Ostatnio zmieniony 9 lut 2013, o 15:50 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Używaj tagów code.
Awatar użytkownika
vpprof
Użytkownik
Użytkownik
Posty: 492
Rejestracja: 11 paź 2012, o 11:20
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 26 razy
Pomógł: 64 razy

[C] Niepoprawny odczyt danych z pliku

Post autor: vpprof »

Nie czytałem całego kodu, ale slownik jest typu char, więc czemu piszesz printf("%d",slownik[i][j][l]); (linia 53)?

Ponadto gdzieś widziałem, że sign=fgets... przy czym sign masz jako int a fgets() zwraca char*. Niby i to i to tylko liczba, ale nie powinno się tak robić.
mati861
Użytkownik
Użytkownik
Posty: 80
Rejestracja: 3 wrz 2012, o 10:37
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 3 razy
Pomógł: 18 razy

[C] Niepoprawny odczyt danych z pliku

Post autor: mati861 »

Ok, sprawdziłem i po prostu nie otwiera mi się wskaźnik do pliku. Czy ktoś wie czemu może tak być?
Awatar użytkownika
vpprof
Użytkownik
Użytkownik
Posty: 492
Rejestracja: 11 paź 2012, o 11:20
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 26 razy
Pomógł: 64 razy

[C] Niepoprawny odczyt danych z pliku

Post autor: vpprof »

Nie wiem, co znaczy, że „wskaźnik się nie otwiera”. FILE to struktura przechowująca różne informacje o pliku, do której są one zapisywane w momencie otwarcia i na której operuje się wskaźnikami, bo tylko w ten sposób można przekazać przechowywane w niej dane do funkcji operujących na plikach.

Może wklej po prostu poprawiony kod i wtedy będzie coś więcej widać.
ODPOWIEDZ