Как выйти из ввода символом "|"

*Делаю упр. по книге Страуструпа и мне нужно выйти из ввода как-то, он предлагает символом |. Пробовал через

if(num == "|") break;

#include <iostream>
#include <vector>

// 5.11 #8 #9

int sumN(int n, std::vector<int> numbers)
{
    int sum = 0;
    for (int i = 0; i < n; i++)
    {
        sum += numbers[i];
    }
    return sum;
}

int main()
{
    setlocale(LC_ALL, "rus");
    std::cout << "Сумма первых N чисел" << std::endl;

    std::cout << "Введите числа:\n";
    int num;
    std::vector<int> numbers;

    do
    {
        std::cin >> num;
        numbers.push_back(num);

    } while (std::cin.get()!='|');
    
    int n;
    std::cout << "\nСколько первых чисел нужно просумировать (N)\n";
    std::cin >> n;

    std::cout << "\nСумма первых " << n << " чисел ( ";
    for (int i = 0; i < n; i++) std::cout << numbers[i] << ' ';
    std::cout << ") равна " << sumN(n, numbers) << std::endl;
    
    return 0;
}```

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

Автор решения: Zhihar

можно так наверное сделать

while (true)
{
    // считываем ввод как строку
    std::string text;
    std::cin >> text;

    // если введена строка-прерыватель - выходим
    if (text == "|")
        break;

    // преобразуем строку в число и добавляем в массив
    numbers.push_back(std::atoi(num));
}
→ Ссылка