cin, oef i nadmierne odczytywanie

0
while(!cin.eof())
    {
		cin >> zmienna1 >> zmienna2 >> zmienna3;
}

W taki sposób chcę odczytywać zmienne aż do momentu wystąpienia EOF.
Jednak jeden raz pętla wykonuje się za dużo. Jak to naprawić? Zależy mi, żeby z jednej linijki trzy zmienne oddzielone spacjami trafiły do odpowiednich double.

0

eof() - zwraca true dopiero po próbie czytania poza plikiem, więc po przeczytaniu ostatnie danych, eof() nadal zwraci false.

while(cin >> zmienna1 >> zmienna2 >> zmienna3) {
    // tu przetwarzanie
}

while(!cin.eof()) {
    cin >> zmienna1 >> zmienna2 >> zmienna3 >> std::ws;
    // tu przetwarzanie
}
0
  1. raczej powinna wyglądać tak:
while(!(cin>>ws).eof()) {
    cin >> zmienna1 >> zmienna2 >> zmienna3;
    // tu przetwarzanie
}

Co równoznaczne z tym:

while(cin>>ws) {
    cin >> zmienna1 >> zmienna2 >> zmienna3;
    // tu przetwarzanie
}

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