Почему не обрабатывает последний входящий символ?

Вот код, тут нужно найти минимальное число в последовательности. Он не обрабатывает последниий веденый символ, с чем связано?

 int main() {
        setlocale(LC_ALL, "Russian");
        vector<int> temp;
        int buf;
        int min = INT_MAX;
        char ch;
        while (cin >> buf) {
            temp.push_back(buf);
            if (cin.get() == '\n')
                break;
            for (int i = 0; i < temp.size(); i++) {
                if (min > temp[i]) {
                    min = temp[i];
                }
            }
        }
        cout << "Минимальное число в последовательности = " << min << endl;
    }

Ответы (1 шт):

Автор решения: Pavel Chernitsyn

Вы должны проверять, что следующий символ - перенос строки после проверки числа на минимум. Иначе проверка не выполнится => число будет проигнорировано. Вот рабочий вариант:

int main() {
    setlocale(LC_ALL, "Russian");
    vector<int> temp;
    int buf;
    int min = INT_MAX;
    char ch;
    while (cin >> buf) {
        temp.push_back(buf);
        for (int i = 0; i < temp.size(); i++) {
            if (min > temp[i]) {
                min = temp[i];
            }
        }
        if (cin.get() == '\n')
            break;
    }
    cout << "Минимальное число в последовательности = " << min << endl;
}
→ Ссылка