在网上大概找到这么两种:
一、
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