codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<limits.h> #include<errno.h> #define MAX_LENGTH_OF_LONG 11 int main() { char *endptr; char yytext[50]="012387"; int yyleng = strlen(yytext); long int lval = 0; double dval = 0.0; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ lval = strtol(yytext, &endptr, 8); } else { errno = 0; lval = strtol(yytext, &endptr, 8); if (errno == ERANGE) { /* Overflow */ if (*endptr != '\0') { printf("Invalid character(s) and any subsequent: %s\n", endptr); return 0; } else { dval = strtod(yytext, NULL); puts("number is a double with token T_DNUMBER"); return 0; }// end if-else }// end if errno }// end outer else if (*endptr != '\0') { printf("Invalid character(s) and any subsequent: %s\n", endptr); return 0; } else { printf("lval is %d\n",lval); puts("number is a long with token L_DNUMBER"); return 0; } }
Private
[
?
]
Run code
Submit