反转输出一个整数,如果溢出,输出0

题目如下:

img


代码如下

#include<iostream>
using namespace std;
int main()
{
    int a;
    while (cin >> a)
    {
        if(a>-2147483648&&a<2147483647)
        {
            int c = 0,b=0;
            for (int i = 1; ; i++)
            {
                if (a != 0)
                {
                    
                    c = a % 10;
                    b = b*10+c;
                    a = a / 10;
                }
                else
                    break;
            }
            cout << b << endl;
        }
        else
            cout << 0 << endl;
    }
}

错误如下

img

如果是个负数,cin会读取一个-号,导致报错