在网上大概找到这么两种:
一、
int getint() { int ret=0; char tmp; while(!isdigit(tmp=getchar())); do{ ret=(ret<<3)+(ret<<1)+tmp-'0'; }while(isdigit(tmp=getchar())); return ret; }二、
inline void read(int &data) { char ch = getchar(); while (ch < '0' || ch > '9') ch = getchar(); data = 0; do{ data = data*10 + ch-'0'; ch = getchar(); }while (ch >= '0' && ch <= '9'); } int a; read(a); // scanf("%d",&a);
相关题目:
http://poj.org/problem?id=3349