Czy ktos moze mi wytlumaczyc dlaczego ponizszy kod:
[code]
ifstream plik;
char znak;
plik.open(path,ios_base::binary);
while(!plik.eof())
{
plik.get(znak);
}[/code]
wczytuje ostatni bajt pliku dwa razy.Program kompilowalem w builder 6.
Czy ktos moze mi wytlumaczyc dlaczego ponizszy kod:
[code]
ifstream plik;
char znak;
plik.open(path,ios_base::binary);
while(!plik.eof())
{
plik.get(znak);
}[/code]
wczytuje ostatni bajt pliku dwa razy.Program kompilowalem w builder 6.
przyznam sie szczerze u mnie taki blad nie wystepuje. Zamienilem tylko ios_base na ios i dziala dobrze.
Zarowno jako ios::in oraz ios::binary
Tak wracajac do tematu okazalo sie ze dziala poprawnie w takiej postaci:
[code]
ifstream plik;
char znak;
plik.open(path,ios_base::binary);
while(!plik.eof())
{
znak=plik.get();
}
[/code]
Plik byl tekstowy i zamiast znaku konca pliku wczytywalo poprzedni znak. Nie moge jednak zrozumiec dlaczego.