1 / 6
Sep 2019

Oczywiście, że nie zadziała. Twój sposób zadziałałby gdybyś wejście miał postaci: HH MM. Tutaj nie masz białego znaku pomiędzy H i M więc cin próbuje to wczytać jako jeden obiekt no i wychodzi klops. Wczytywanie możesz robić na co najmniej dwa sposoby np. wykorzystując getline() lub getchar(). Poczytaj o tych funkcjach.
P.S. Dlaczego nie dopisałeś się do starego wątku tylko tworzysz kolejny do tego samego zadania?
Uzupełnię jeszcze…
Cin oczywiście też zadziała ale nie w ten sposób jak to robisz. Podpowiem tylko, że musisz cin użyć raz i nie wczytywać nim int-a. Co w takim razie wczytywać? To już, jak sądzę, się domyśliłeś :slight_smile:

std::cin >> H;
std::cin.ignore();
std::cin >> M;

W języku C/C++, można użyć zmiennej znakowej [typ char], tzn

char dwukropek;
int godzina, minuty;
//..............

std::cin >> godzina >> dwukropek >> minuty;

Oczywiście zmienną można nazwać dowolnie, np c
Jeżeli używasz scanf’a, to można zrobić to tak:

scanf ("%d:%d", &godzina, &minuty);