[C++] Wczytywanie danych, az do napotkania EOF

0

Witam. Mam problem. Piszę jeden z programów na SPOJ. W treści zadania jest napisane, że mamy nieokreśloną liczbę zestawów, nie większą niż 10^5.

A więc tu moje pytanie.

Jak sprawdzic, czy został już wprowadzony ostatni zestaw?
próbowałem dac pętle

do
{

// obliczenia
}while((znak = cin.get()) != EOF)

gdzie zmienna znak jest typu INT, próbowałem też char, ale nic nie zmieniło rezultatu.

Czy ktoś ma jakiś pomysł?

0

Np. scanf() zwraca ilość pobranych argumentów, wystarczy ze powinien wczytać ich 5 a nie wczytał i już wiadomo że wejscie się skończyło. Możesz też dać np. jakieś while(stdin)

A w takiej konwencji w jakiej próbowałeś to juz prędziej cin.peek() żeby nie pobrać sobie kawalka danej do zadania...

0

Podaj link.

0

Okej, dzięki.
Kurcze, wykonałem program, który moim zdaniem realizuje cele zadane w zadaniu.
Po sprawdzeniu kilkudziesięciu kombinacji, wszystko wykonały się prawidłowo.
na ideone.com przechodzi sposób z cin.peek().
Jedyny błąd jaki mi wyskoczył, to błędny wynik, aczkolwiek zarówno ideone jak i ręczne wklepywanie pokazuje te same wyniki, które de facto są zgodne z treścią zadania.

Byc może wina leży w sposobie odczytywania testów.
Wie ktoś może, w jaki sposób są zakończone "testy" na SPOJU.
Chodzi mi głównie o obliczenia i o ostatni zestaw, w jaki sposób jest zakończony :/
Według mnie tu leży problem

0

Spróbowałbym rozwiązania z scanf(), tyle że prawdę powiedziawszy nigdy nie używałem tej funkcji i nie wiem jak by wyglądała ta funkcja, przy pobieraniu 2ch zmiennych typu całkowitego przy jednym obiegu pętli i zapisie do tablic dwuwymiarowych

0

Normalnie.
scanf("%d %d", &zmienna1, &zmienna2)
W przypadku bledu zwróci liczbę mniejszą niż 2.

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