[c++]czytanie pliku

0

witam.
Mam takie pytanie:
normalnie jeśli wczytuje plik do zmiennej przez fstream to czyta go od lewej do prawej?
jeśli ustawie seekg na end to zacznie czytać od lewej do prawej?
jeśli nie to jak takie coś zrobić?

0
sadsad323235 napisał(a)

witam.
jeśli ustawie seekg na end to zacznie czytać od lewej do prawej?

Popierniczyło mi się chodziło mi od prawej do lewej

0

Nie czytasz od prawej do lewej, poniewaz po przeczytaniu znaku wskaznik pliku idzie w prawo(dalej!), chcesz sobie czytac odwrotnie to baw sie z kernelem i to zmien.

Jak chcesz miec odwrotnie te znaki w tablicy to zapisujesz do tablicy od tylu, a nie odwrotnie czytasz plik.

FILE *fp = fopen("plik", "r");
char tab[64]; int i;

for(i = 63; i >= 0; i--)
  tab[i] = fgetc(fp);

fclose(fp);
0

a to jak wczytać plik od tyłu?
bo jak ustawiłem seekg end, a potem przez write to nie chce wczytywać

0

Napisalem wyraznie, ze nie odczytasz od tylu, poniewaz tyle ile wczytasz bajtow o tyle idzie do przodu wskaznik, a nie do tylu :D Co do tego SEEK_END to po prostu ustawia wskaznik na koniec pliku, wiec mozesz jedynie odczytac EOF i nic, chyba ze bedziesz cofal wskaznik o jeden, ale to tez nie jest czytanie od tylu.

po prostu normalnie sie nie da.

0

A nie można normalnie wczytać np. do tablicy i odwrócić?

0

lukasz: a czy to będzie czytanie pliku od tyłu? a czy nie to wlasnie zaproponowal tom-k dwa posty temu?

czytać plik od tyłu oczywiscie ze można! sposob jest banalny:

seek na ostatni bajt pliku
odczytaj bajt
seek na przedostatni bajt pliku
odczytaj bajt
seek na 2-gi od konca bajt pliku
odczytaj bajt
...

a więc: da się. ale czy to ma sens?
jesli nie ma sensu, to sadsad - napiszże co chcesz osiagnac, a nie jak-Ci-sie-wydaje-ze-powinienes

0

@up: to tez nie bedzie czytanie od tylu, no ale jakby nie bylo efekt ten sam, tylko po co wywolywac setki razy fseek i fread, badz inne odpowiedniki skoro mozna zrobic tak jak w przykladzie dalem

Zreszta jak autorowi zalezy tak bardzo na czytaniu takim to, np. na Linuksie, kernel mode i jazda z file_operations(tworzy sobie pseudo terminal i dziala, plik to plik co nie), badz tez modyfikacja kernela, ale tutaj nie pomoge, bo malo mnie do tej pory takie cos obchodzilo.
//q: to tez nie bedzie czytanie od tyłu, bo dane z dysku przychodza blokami 'do przodu' :)

Mozna tez zawsze zastapic funkcje odczytu z pliku swoja wlasna wersja ;p

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