#include <iostream>
#include <cstdlib>
#include <climits>
using namespace std;
static int test( const char * p) {
char * endptr;
const long int argument = strtol ( p, & endptr, 10 ) ; // <cstdlib>
if ( endptr[ 0 ] ! = '\0 ' ) {
cerr << p << ": arguments must be integer" << endl;
return - 1 ;
} else if ( argument == LONG_MIN || argument == LONG_MAX ) { // <climits>
// Alternatively you can check for ERANGE in errno
cerr << p << ": arguments value is out of range" << endl;
return - 1 ;
} else {
/* Right type of argument received */
cout << p << " parsed as integer" << endl;
return 0 ;
}
}
int main( ) {
char inp[ 128 ] ;
while ( cin >> inp) {
test( inp) ;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNsaW1pdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdGF0aWMgaW50IHRlc3QoY29uc3QgY2hhciAqcCkgewoJY2hhciAqZW5kcHRyOwoJY29uc3QgbG9uZyBpbnQgYXJndW1lbnQgPSBzdHJ0b2wgKHAsICZlbmRwdHIsIDEwKTsgIC8vIDxjc3RkbGliPgoJaWYoZW5kcHRyWzBdICE9ICdcMCcpIHsKCSAgICBjZXJyPDwgcCA8PCAiOiBhcmd1bWVudHMgbXVzdCBiZSBpbnRlZ2VyIiA8PCBlbmRsOwoJICAgIHJldHVybiAtMTsKCX0gZWxzZSBpZiAoYXJndW1lbnQgPT0gTE9OR19NSU4gfHwgYXJndW1lbnQgPT0gTE9OR19NQVgpIHsgIC8vIDxjbGltaXRzPgoJICAgIC8vIEFsdGVybmF0aXZlbHkgeW91IGNhbiBjaGVjayBmb3IgRVJBTkdFIGluIGVycm5vCgkgICAgY2Vycjw8IHAgPDwgIjogYXJndW1lbnRzIHZhbHVlIGlzIG91dCBvZiByYW5nZSIgPDwgZW5kbDsKCSAgICByZXR1cm4gLTE7Cgl9IGVsc2UgewoJICAgIC8qIFJpZ2h0IHR5cGUgb2YgYXJndW1lbnQgcmVjZWl2ZWQgKi8KCSAgICBjb3V0IDw8IHAgPDwgIiBwYXJzZWQgYXMgaW50ZWdlciIgPDwgZW5kbDsKCSAgICByZXR1cm4gMDsKCX0KfQoKaW50IG1haW4oKSB7CgljaGFyIGlucFsxMjhdOwoJd2hpbGUoY2luID4+IGlucCkgewoJCXRlc3QoaW5wKTsKCX0KCXJldHVybiAwOwp9
stdin
LTEgYWFzbXNuc2FrIDQyIDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEgLTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEgMTIzNDU2NzggLTk4NzY1NDMyIDQydGVzdCB0ZXN0NDIgMCAwMQ==
-1 aasmsnsak 42 1111111111111111111111111111111111111 -1111111111111111111111111111111111111 12345678 -98765432 42test test42 0 01