[C++] Poruszanie się po pliku
Ostatnio zmodyfikowano 2016-02-04 14:42
Ajon Temat założony przez niniejszego użytkownika |
[C++] Poruszanie się po pliku » 2016-02-04 12:25:17 Witam Po uruchomieniu poniższego programu, program jakby przeskakuje część pliku. Mianowicie poprawnie wyświetla pozycje początkową jako 0, ale po wczytaniu danej pozycja w programie zmienia się na 57, a nie na 3. #include <iostream> #include <fstream> using namespace std;
int main() { int a; ifstream plik( "dane.txt" ); if( !plik.good() ) return 0; cout << plik.tellg() << endl; plik >> a; cout << plik.tellg(); return 0; }
Plik po którym się poruszam: http://www.mediafire.com/view/i9711nffrz9jc10/dane.txt |
|
darko202 |
» 2016-02-04 14:42:22 1. coś jest źle ? tzn. wykonało się niezgodnie z oczekiwaniem są 3 linie kodu * czy sprawdziłeś co masz w zmiennej a ? po plik >> a; tzn. czy operacja wczytania się udała (powinna, ale czy się faktycznie udała) istotne jest ile znaków przeczytała * czy nie ma flagi błędu użytej funkcji tellg tu masz dwie linie 0 2. spróbuj przeczytać ten plik inaczej np. tak jak w przykładzie na http://www.cplusplus.com/reference/istream/istream/tellg/3. przeczytałem, że na przykład gdy fstream napotka jakikolwiek błąd albo koniec pliku, zostaje w takim stanie wtedy trzeba wywołać funkcję clear() wpływa na stan wykonywanych funkcji cytowaną stronę już zamknąłem - może się mylą Sorry, ale nie chce mi się tego dokładniej sprawdzać p2 zawsze działa - tzn. próbować inaczej zrobić to co się nie udaje Powodzenia :) |
|
« 1 » |