#include <iostream>
#include <ctype.h>
#include <string.h>
using namespace std;
int main(void)
{
char sInt[12]; //Буфер, массив символов в которую в первую очередь будем вводить данные с клавы
int resInt; //Итоговое целочисленное значение
bool isIntTrue = false; //Переменная для выхода из цикла ввода с клавиатуры
while (!isIntTrue) //Пока не введено верное по синтаксису число выполнять:
{
cout<<"Input sInt : "; //Диалог нач. ввода
gets(sInt); //получим буфер (в идеале защищаем от переполнения) например с помощью strncpy
isIntTrue = true; //Утверждаем (Предположем) что введено вверное число по синтакцису (ОТ ПРОТИВНОГО)
for (int i=0; i<strlen(sInt);i++) //Перебираем каждый символ в буфере
{
if (i == 0 && sInt[0] == '-') continue; //У нас может быть отрицательное число
//Следовательно если первый символ в массиве симоволов (наш буфер) символ "-" (минус)
//то переходим к сл. итерации
if (isdigit(sInt[i]) == 0) //isdigit (char CH) - возвращает 0 если CH - не код цифры(0..9)
{
isIntTrue = false; //один из символов не цифра и мы отвергаем наше предположение
cout<<endl<<"["<<sInt<<"]"<<" - Not integer"<<endl;
break;// Завершаем цикл for, нам не зачем проверять дальше, мы уже не сможем преобразовать
}
}
}
resInt = atoi(sInt); //Преобразовываем в целочисленное значение и присваиваем нашей переменной
cout<<"You input integer = "<<resInt;
}