только начал изучать c ++ несколько дней a go. Как мне вернуть мой код в начало после ввода aaa для первого ввода. Вместо этого он просто начинает выходить из программы, где я хотел бы, чтобы он запросил ошибку, введите номер, если пользователь вводит aaa или просто любой символ или букву.
Я хочу, чтобы программа запускалась точно так же, когда я вхожу Когда меня спрашивают: «Введите количество чисел, которые вы хотите проверить», и я ввожу, программа не завершается, а возвращается к началу и задает тот же вопрос. Я хочу, чтобы он проверил оба условия, что это не отрицательное число и не буквы. Необходимо использовать cin.fail
http://cpp.sh/9tqrx
#include <iostream>
#include <limits>
using namespace std;
int main()
{
int numberCheck=-1;
while(numberCheck<0){
cout<<"Enter the number of numbers you want to check: ";
cin>>numberCheck;
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
if(numberCheck<0)
cout<<"Wrong number. Try one more time" << endl;
}
int j;
for(j=0;j<numberCheck;j++){
//description variable:
int number=-1;
//input number:
while((number<1)||(number>1000)){
cout<<"Input a number between 1 and 1000: ";
cin>>number;
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
if((number<1)||(number>1000))
cout<<"That number is not valid or character. Input a number." <<endl;
}
//Determine if a number is a prime number or not.
//A prime number is one whose only exact divisors are 1
//and the number itself (such as 2, 3, 5, 7, etc.).
int i;
int nDiv=0;
int isSimple=1;
for(i=2;i<number;i++)
if(number%i==0)
{
if(isSimple==1){
cout<<"That is not a prime number. Divisors are:"<<endl;
cout<<"1\t";
nDiv=1;
isSimple=0;
}
cout<<i<<"\t";
nDiv++;
if(nDiv%10==0)
cout<<endl;
}
if(isSimple==0) //if not simple, output last item:
cout<<number<<endl;
else
cout<<"That is a prime number."<<endl;
}
return 0;
}