Sprawdzenie czy wprowadzane w pętli dane to liczba

0

Witam, zaczynam uczenie się programowania i mam do napisania program. Ma on porównywać dwie pięcioelementowe tablice typu int. Elementy nie muszą byc w tej samej kolejności i mogą się powtarzać. Nie sprawiałoby mi to problemu (planowałem użyć fukcji sortowania obu tablic i porównania elementów pętlą), ale wymagane jest sprawdzenie poprawności wprowadzanych danych. Jeżeli użytkownik wprowadzi błędne znaki, to program ma czekać na podanie liczby. Z tym właśnie mam problem. Próbowałem z isdigit(), ale to działa dla char i dla pojedynczych cyfr, a nie dla liczb typu 123, chyba że ja coś knocę. Wklejam co wymodziłem:

#include <iostream>
using namespace std;

int main()
{
    const int size = 5;
    int ar1[size], ar2[size];
    char element;

    for (int i=0; i<size; i++)
    {
        cin >> element;
        if (isdigit(element))
        {   
            ar1[i] = element;
        }
        else    i--;
    }
    
    cout << "Tablica AR1: "; //roboczo wyświetlam, ostatecznie będzie porównywane z drugą tablicą wprowadzaną w ten sam sposób
    for (int i=0; i < size; i++)
        cout << ar1[i] << " ";
    
    return 0;
}
1
int i;
if(cin >> i)
    // ...
0
int pobierzInt()
{
  int liczba;
  cout << "Podaj liczbe: ";
  
  while(!(cin >> liczba))
  {
    cout << "Podaj poprawna liczbe: ";
    cin.clear();
    fflush(stdin);
  }

  return liczba;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1