[solved] tellg po ponownym otwarciu ifstreama zwraca -1

0

Witam,
napotkałem taki problem,

w pętli for chce wczytać parę plików więc po kolei
otwieram plik
w if'ie gdzie sprawdzam is_open mam pętle while, pobieram getlinem linijke, waunkiem jest eof, wszystko ładnie, na początku tellg zwraca 0 no i ok bo znajduje sie na początku, po wyjściu z while'a zwraca -1, potem po wyjściu z if'a ale wiadomo, że w pętli for mam file.close() no i zaczyna sie nowa iteracja for'a, pobiera z tablicy nową nazwę pliku otwiera is_open działa bo wypisuję sobie ale tellg zwraca ciągle -1 (nie wczytuje treści drugiego pliku), próbowałem dodać file.seekg(0) i drugą wersję file.seekg(0,ios::beg) w różnych miejscach ale nic to nie daje, nie wiem co zrobić, żeby to wszystko ładnie płynnie wczytywało plik po pliku, nie chcę tworzyć osobno każdego wczytania bo plików może być kilkanaście (wczytuję różne modele .obj) i zajęłoby to za dużo miejsca

0

jak juz dojdziesz do konca strumienia, w obiekcie ifstream ustawia sie automatycznie flaga EOF, strumien wchodzi w stan bledu i zaczyna pomijac wszelkie operacje. aby moc z niego dalej korzystac, nalezy uzyc metody CLEAR ktora spowoduje wyzerowanie flag stanu i powrot do normalnej pracy

btw. na drugi raz, zamiesc kod i daj sensowniejszy temat

0

ok, dzięki za pomoc, teraz wszystko działa.

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