Wczytywanie linii tekstu z pliku

0
... // ciało funkcji 

int func(int licznik){


fstream IStream("plik.txt",ios::in);

while(licznik>0){
char wyrzuc_linie[40];
IStream.getline(wyrzuc_linie,40);
    --licznik;} 

 
 
 if( IStream.is_open()){
    cout << "Uzyskano dostep do pliku!" << std::endl;

   IStream >> Liczba;
...//

IStream >> Liczba, to odpowienie przeciążenie, które wczytuje mi wyrażenie zapisane w linii ( każde jest w osobnej linii tekstu). Problem polega na tym że jest to funkcja która będzie wywoływana kilka razy, czyli po prostu co jakiś czas chcę brać z pliku kolejną linię , wymyśliłem sobie, że jej parametrem będzie zmienna licznik, która określa który to raz wywołuję funkcje , a zarazem którą linię tekstu chcę wczytać. Zrobiłem więc tablicę znakową i sprytną pętle, która wczyta kilka kolejnych linii do pominięcia i przy wywołaniu przeciążenia >> wczyta mi kolejną, nową. Niestety tak nie jest następuje zrzut pamięci.
Jak to jest, za każdym wywołaniem funkcji ten plik będzie otwierany na nowo ?
Nie wiem na jakiej zasadzie to działa.

0
int il=4; // edit
while(il>0){
	char wyrzuc_linie[40];
    IStream.getline(wyrzuc_linie,15);
    cout << wyrzuc_linie;
    --il;} 

On w tej prostej pętli bierze 15 znakow i potem kolejne 15 z tej samej linii, a chę aby przeszedł do nowej, jak to zrobic ?

0

Może zwyczajnie nie zamykaj pliku i normalnie czytaj kolejny wiersz. Takie rozwiązanie może było by potrzebne w przypadku cofania się, a nawet w takim przypadku łatwiej zapamiętać pozycje w pliku i do niej się cofać.

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