działania na plikach, fscanf,fprintf

Odpowiedz Nowy wątek
2019-01-11 20:51
0

Witam, czy istnieje sposób by po tym jak pierwsza funkcja przeczyta plik txt druga funkcja która korzysta z tego samego pliku mogła go czytać (fscanf) od początku?

Pozostało 580 znaków

2019-01-11 21:11
kq

Masz na myśli przesunięcie wskaźnika na początek pliku?

fseek(fp, 0, SEEK_SET);

Pozostało 580 znaków

2019-01-11 21:29
0

Dzięki, działa :)

Pozostało 580 znaków

2019-01-11 21:58
1

Skoro chcesz czytać plik dwa razy, to może warto wspomnieć, że możesz zmapować część pliku do pamięci, wtedy masz prosty dostęp do każdego kawałka pliku. Tyle tylko, że to jest zależne od platformy, na linuksie służy do tego funkcja mmap() (co do Windowsa, tu coś jest https://docs.microsoft.com/pl[...]s/desktop/Memory/file-mapping). Nie wiem jak na windowsie, ale na linuksie użycie tego jest bardzo proste i zresztą to samo polecenie jest używane w implementacji wspomnianych przez ciebie funkcji.

edytowany 1x, ostatnio: elwis, 2019-01-11 21:59
Dzięki za odpowiedź, z tego co wyczytałem "fseek(fp, 0, SEEK_SET);" pozwala dowolnie ustawić kursor w pliku, więcej do szczęścia juz nie potrzebuje :) - Pablit0 2019-01-11 22:01
Podałem to na wypadek gdybyś chciał bardziej skakać po pliku, a nie napisał o tym. Z resztą fready i fwritey bywają bardzo upierdliwe, dostęp przez pamieć jest przyjemniejszy. Poza tym na przyszłość może się przydać. - elwis 2019-01-11 22:05

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0