Lire les nombres d'entrée séparés par des espaces

Cela peut être un débutant total de la question, mais je n'ai pas encore trouver une réponse qui fonctionne pour moi.

Actuellement, je suis en train d'écrire un programme pour une classe qui prend dans l'entrée d'un utilisateur (qui peut être un ou plusieurs nombres séparés par des espaces), puis détermine si le nombre est premier, parfait, ou aucun des deux. Si le nombre est parfait, alors il affiche des diviseurs.

Jusqu'à présent, je l'ai déjà écrit le code pour le premier, parfait, et la liste des diviseurs. Je suis bloqué sur l'entrée de la partie de mon programme. Je ne sais pas comment faire pour obtenir l'entrée, séparés par des espaces de passer par mes boucles une à une.

C'est mon programme actuel:

cout<<"Enter a number, or numbers separated by a space, between 1 and 1000."<<endl;
cin>>num;

while (divisor<=num)
    if(num%divisor==0)
    {
        cout<<divisor<<endl;
        total=total+divisor;
        divisor++;
    }
    else divisor++;
if(total==num*2)
    cout<<"The number you entered is perfect!"<<endl;
else cout<<"The number you entered is not perfect!"<<endl;


if(num==2||num==3||num==5||num==7)
    cout<<"The number you entered is prime!"<<endl;

else if(num%2==0||num%3==0||num%5==0||num%7==0)
    cout<<"The number you entered is not prime!"<<endl;
else cout<<"The number you entered is prime!"<<endl;

return 0;

Cela fonctionne, mais seulement pour un seul numéro. Si quelqu'un pouvait m'aider à l'obtenir pour être en mesure de lire plusieurs entrées séparées par des espaces, ce serait grandement apprécié. Aussi, juste une note de côté, je ne sais pas combien de numéros sera inscrite, donc je ne peux pas juste faire une variable pour chacun. Il sera d'un montant aléatoire de nombres.

Merci!

source d'informationauteur Raymond Aaron