Как правильно использовать cin.peek ()

Эта функция должна читать дробь и помещать ее в массив. Если пользователь вводит «0» функция должна выйти. Я пытаюсь сделать это с помощью функции cin.peek (), но выполнение всегда входит в оператор if и неt позволить пользователю выйти.

Как я должен правильно кодировать это (я открыт, чтобы не использовать peek (), я думал, что это был самый простой способ сделать это.)

Спасибо!

void enterFrac(Fraction* fracs[], int& index)
    {
        int n, d;
        char c, slash;
        cout < "Enter fractions (end by entering a 0): ";
        c = cin.peek();

        if ( c != '0')
        {
            cin >> n >> slash >> d;
            Fraction* f = new Fraction();
            f->num = n;
            f->den = d;
            fracs[index] = f;
            index++;
        }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос