首页 > 代码库 > 数据输入输出加速模板
数据输入输出加速模板
http://blog.csdn.net/shahdza/article/details/6317011 该帖的改进版本
无返回值,非负整数输入
template <class T>inline void input(T &ret){ char c; ret=0; while(c=getchar(),c<‘0‘||c>‘9‘); while(c>=‘0‘&&c<=‘9‘) ret=ret*10+(c-‘0‘),c=getchar();}
有返回值,非负整数输入
template <class T>inline bool is_input(T &ret){ char c; ret=0; while(c=getchar(),c<‘0‘||c>‘9‘) if(c==EOF) return 0; while(c>=‘0‘&&c<=‘9‘) ret=ret*10+(c-‘0‘),c=getchar(); return 1;}
有返回值,整数输入
template <class T>inline bool is_input(T &ret){ char c; int sgn; while(c=getchar(),c!=‘-‘&&(c<‘0‘||c>‘9‘)) if(c==EOF) return 0; sgn=(c==‘-‘)?-1:1; ret=(c==‘-‘)?0:(c-‘0‘); while(c=getchar(),c>=‘0‘&&c<=‘9‘) ret=ret*10+(c-‘0‘); ret*=sgn; return 1;}
有返回值,非负实数输入
template <class T>inline bool is_input(T &ret){ char c; T bit=0.1; while(c=getchar(),(c<‘0‘||c>‘9‘)&&c!=‘.‘) if(c==EOF) return 0; ret=c-‘0‘; while(c=getchar(),c>=‘0‘&&c<=‘9‘) ret=ret*10+(c-‘0‘); if(c!=‘.‘) return 1; while(c=getchar(),c>=‘0‘&&c<=‘9‘) ret+=(c-‘0‘)*bit,bit/=10; return 1;}
有返回值,实数输入
template <class T>inline bool is_input(T &ret){ char c; int sgn; T bit=0.1; while(c=getchar(),(c<‘0‘||c>‘9‘)&&c!=‘-‘&&c!=‘.‘) if(c==EOF) return 0; sgn=(c==‘-‘)?-1:1; ret=(c==‘-‘)?0:(c-‘0‘); while(c=getchar(),c>=‘0‘&&c<=‘9‘) ret=ret*10+(c-‘0‘); if(c!=‘.‘){ ret*=sgn; return 1; } while(c=getchar(),c>=‘0‘&&c<=‘9‘) ret+=(c-‘0‘)*bit,bit/=10; ret*=sgn; return 1;}
非负整数输出
void out(int x){ if(x>9) out(x/10); putchar(x%10+‘0‘);}
数据输入输出加速模板
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。