#include <iostream>
#include <fstream>
int main()
{
std::ifstream plik;
char znak;
plik.open("file.txt");
while(!plik.eof())
{
std::cout<<plik.tellg();
plik>>znak;
std::cout<<znak;
std::cout<<plik.tellg();
}
plik.close();
return 0;
}
Używając tego programu zauważyłem jedną bardzo dziwną rzecz. Chodzi o to, że przed odczytaniem pierwszego znaku metoda tellg zwraca wartość 0. Po jego odczytaniu zamiast zwrócić wartość 1 zwraca wartość 3(ale wszystko podczas wczytywania działa dobrze), a już wszystkie kolejne użycia metody tellg zwracają wartości po kolei(poczynając od 4 w górę). Może mi to ktoś wytłumaczyć. Dlaczego po odczytaniu pierwszego znaku wartość zwracana przez tą metodę tak się zmienia?(sorry za spam pytaniami o tą metodę, ale sprawia mi ona jakies wyjątkowe problemy) ;)
zawartość plik:
qweqweqweqwe
qweqweqweqwe
qweqwe