📄 xatoi.c
字号:
/** \file xatoi.c * Implements xatoi, an easy to use atoi() replacement with error * checking. * * \author Matthias Andree * \date 2003 */#include "xatox.h"#include <string.h>#include <stdlib.h>#include <errno.h>#include <limits.h>int xatoi(int *i, const char *in) { long val; char *end; errno = 0; val = strtol(in, &end, 10); if (end == in /* input string empty or does not start with sign/digit */ || end < in + strlen(in) /* junk at end of in */ || errno == EINVAL /* "base not supported" (shouldn't happen) */ || errno == ERANGE /* underflow or overflow */) return 0; if (val > INT_MAX || val < INT_MIN) { /* out of range for 'int' type */ errno = ERANGE; return 0; } *i = (int)val; /* safe after range check */ return 1;}#ifdef MAIN#include <stdio.h>int main(int argc, char **argv) { int i; for (i = 1; i < argc; i++) { int d; int s = xatoi(&d, argv[i]); printf("%s -> errno=%d_(%s) status=%d int=%d\n", argv[i], errno, strerror(errno), s, d); } exit(EXIT_SUCCESS);}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -