#include "stdafx.h"
#include "iostream"
using std::cout;
using std::cin;
using std::endl;
int main()
{
setlocale(LC_ALL, "rus");
int currval = 0, val = 0;
if (cin >> currval) {
int cnt = 1;
while (cin >> val) {
if (val == currval)
++cnt;
else {
cout << currval << " Введено " << cnt << "раз." << endl;
currval = val;
cnt = 1;
}
}
cout << currval << " Введено " << cnt << "раз." << endl;
}
return 0;
}
Программа должна работать так, что при вводе чисел через пробел подсчитывает количество введенных одинаковых и остальных чисел. Учу С++ по учебнику - Стенли Б. Липпман. Жози Лажойе. Барбара Э. Язык программирования C++. Базовый курс (2014). Программа идентична той, что на странице 44(46).
Но, программа не выводит последнее введенное число. А при повторном вводе не сбрасывает значение последнего не выведенного числа, а продолжает считать, как будто оно введено в новой строке. Помогите найти решение, пожалуйста. Объясните.