Wskazniki w plikach binaranych zawierajacych struktury

0

Strasznie męczę się z następującą rzeczą.
Mam sobie plik, w którym przechowuje np. 30 struktur.
Chcę sobie odczytać te wszystkie struktury, więc muszę znać rozmiar pliku.
Robię to tak :

fseek(plik,0,SEEK_END);
ilosc=ftell(plik)/sizeof(plytaCD);
fseek(plik,0,SEEK_SET);

no i pozniej w petli for(i=0;i<ilosc;i++), przegladam wszystkie elementy.

No i teraz potrzebuje sobie zwrocic aktualne polozenie wskaznika w pliku np. dla struktury nr 5. To robie to tak:

printf("Podaj element szukany: ");
	scanf("%s",x);
	for(i=0;i<n;i++)
	{
		fread(&plytaCD,sizeof plytaCD,1,plik);
		if(strcmp(plytaCD.tytul,x)==0)
		{	
			pozycja=ftell(plik)/sizeof(plytaCD);
			printf("%d",pozycja);
		}		
	}	
}
 

I to w ogole zwraca mi jakas kosmiczna liczbe. Nie rozumiem tego zapisu : ilosc=ftell(plik)/sizeof(plytaCD); I jak to stosowac, zeby zadzialalo ...
Ogolnie jak operowac WSKAZNIKAMI W PLIKACH BINARNYCH, ktore zawieraja struktury ? ;
Dziekuje za pomoc.

0

po prostu

pozycja=ftell(plik);

0

No nie działa to bo zwraca mi liczbę typu 2222522888888 i jest ona chyba zbyt duża? Skoro mam tylko 30 elementów.

Ogólnie chodzi mi o funkcje, ktora usuwa strukture z pliku binarnego. Chce zrobic tak, ze wczytuje do pamieci elementy, az napotkam ten ktory chce usunac. Ustawiam za nim wskaznik, odczytuje dalej i pozniej zapisuje ponownie bez tego usuwanego elementu.
Nie umiem ustawić wskaźnika i działać dalej ;\

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.