在网上大概找到这么两种:
一、
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
本文对比了C++中两种整数输入方法:直接使用getchar()与自定义read()函数。通过实验发现,在处理大量数据时,自定义read()函数表现出显著的性能优势。同时,文章揭示了getchar()方法存在的潜在bug,为开发者提供了实用的优化建议。
56

被折叠的 条评论
为什么被折叠?



