problemy z danymi z pliku

0

możecie powiedzieć czemu ostatnią linię w pliku składającego się z dwóch kolumn mój program wczytuje dwa razy??

 #include <iostream>
#include <fstream>
using namespace std;

int main()
{

    double suma1=0;
    double suma2=0;

    ifstream liczby("plik.txt");

    double liczba1;
    double liczba2;

    while (!liczby.eof())
    {
        liczby >> liczba1 >> liczba2;

            cout << liczba1 << endl;
            cout << liczba2 << endl;

            suma1=suma1 + liczba1;
            cout << suma1 << endl;
            
            suma2=suma2 + liczba2;
            cout << suma2 << endl;
    }
    liczby.close();

    cout << suma1 << endl;
    cout << suma2 << endl;

    return 0;
}

pozdrawiam d.
przykładowy plik:
1 1
1 2
3 4

0

Bo warunek !liczby.eof() przestanie się spełniać dopiero po próbie odczytu poza plikiem.
Czyli wczytało się 3,4 dodało się !liczby.eof() - prawda i kolejny krok pętli.
znowu próba wczytania, próba się nie powiodła ale w zmiennych nadal 3,4 jeszcze raz je dodajesz i dopiero teraz !liczby.eof() - falsz

0

to w takim razie do kiedy pętla while powinna działać, żeby ostatnią linię wczytać tylko raz?

0

rozkminiłem
już wiem
dzięki za pomoc

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