Tajemnicze działanie Strumieni i poruszanie się po plikach

0

Witam,
Mam pytanie dot. funkcji plikowych i działania strumieni. Oto mój problem: Mam zaimplementować wyszukiwanie wzorca w pliku o wymiarach 1000x1000 i większym, różnymi algorytmami. Moje pytania są następujące:

  1. Czy lepiej poruszać się po pliku funkcją seekg() i porównywać znaki czy lepiej wczytać ten plik do pamięci?
  2. W jaki sposób przejść do kolejnej linii w pliku poruszając się w nim funkcją seekg (lub inna)? Po 1000 wypisanych znakach program wypisuje jakieś śmieci.
  3. Kod:
 ifstream thousand;
for ( int i = 0; i < 1000; i++ )
    {
               for ( int j = 0; j < 1000; j++ )
                   {
                        thousand>>tab[i][j];  //    <--- PROBLEM
                   }
    } 

Wczytuje do pamięci plik, działa i spełnia moje oczekiwania tylko nie wiem jakim cudem. Forami poruszam się po dynamicznie zaalokowanej 2-wym tablicy znaków lecz po pliku się nie poruszam.
a)Skąd więc 'komputer' wie jaki znak chce przypisać danej komórce w tablicy?
b)Dlaczego po przypisaniu znaku danej komórce komputer wie że kolejnej komórce ma przypisać kolejny znak?
4. Po prostu dlaczego np w mojej tablicy przez to, że się nie poruszam po pliku nie mam np. cały czas pierwszego znaku?
5. Co jakbym chciał wczytać np. co drugi znak albo jakoś inaczej?

1

Wyciąga znak, ustawia go. robi to bo wie, że tab[i][j] to char.

gdybyś w ten sposób chciał pomijać część danych, to musiałbyś je wyciągnąć w ten sam sposób istream >> coś i to coś zostawić w spokoju.

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