isdigit
сообщит вам, представляет ли код символа набора символов одну из цифр 0 - 9.
Поэтому (я предполагаю, что вы используете ASCII), вы можете просто использовать символ и проверить его диапазон кода ASCII:
int tab[100];
int n = 0;
char c;
while (n++ < 100)
{
cout << "Give " << n << " number : ";
cin >> c;
if (c < 48 || c > 57)
break;
tab[n - 1] = c - 48;
}
cout << average(tab, n - 1) << endl;
getch();
return 0;
Вы также можете использовать cin.getline
и atoi
или strtod
:
int tab[100];
int n=0;
int number=0;
char input[10];
while (n++ < 100)
{
cout << "Give " << n << " number : ";
memset(input, 0x00, 10);
cin.getline(input, 10);
number = atoi(input);
if (number > 0)
tab[n-1] = number;
else
break;
}
cout << average(tab, n-1) << endl;
getch();
return 0;
Есть и другие методы, которые вы можете использовать, однако они должны дать вам некоторые идеи.