随便写一点放在这里,以后想蛇皮卡常就很方便啦

蒟蒻太懒了,也就暂时不搞什么封namespace之类的操作了

程序结束时记得flush一下。

#include<cstdio>
#define RG register
#define IV inline void
#define TP template<typename T>
#define gc if(++pi==iend)fread (pi=ibuf,1,SZ,stdin)
#define pc(C) *po=C;if(++po==oend)fwrite(po=obuf,1,SZ,stdout)
const int SZ=1<<20;
char ibuf[SZ],obuf[SZ],*pi=ibuf+SZ-1,*po=obuf;
const char*iend=ibuf+SZ,*oend=obuf+SZ;
TP IV in(RG T&x){
gc;while(*pi<'-')gc;
x=*pi&15;gc;
while(*pi>'-'){x*=10;x+=*pi&15;gc;}
}
TP IV iex(RG T&x){
gc;while(*pi<'-')gc;
RG bool f=*pi=='-';if(f)gc;
x=*pi&15;gc;
while(*pi>'-'){x*=10;x+=*pi&15;gc;}
if(f)x=-x;
}
TP IV out(RG T x){
if(x>9)out(x/10);
pc(x%10|'0');
}
TP IV oex(RG T x){
if(x<0){pc('-');x=-x;}
out(x);
}
int main(){
//do something
fwrite(obuf,1,po-obuf,stdout);
return 0;
}

Tips:

  1. gc只是把指针移动到下一个字符,获得字符直接*pi
  2. 不带ex的只资磁非负整数
  3. out使用了函数堆栈,在数比较小时快,int差不多,longlong级别建议改写成手工字符堆栈

update

附上蒟蒻现在已经敲熟了的gi,非常简单,可以直接应用在输入数据中只有整数的考试题目中,直接替代getchar()式的快读,并不容易写挂。

#define gc if(++ip==ie)fread(ip=buf,1,SZ,stdin)
const int SZ=1<<19;
char buf[SZ],*ie=buf+SZ,*ip=ie-1;
inline int gi(){
gc;while(*ip<'-')gc;
bool f=*ip=='-';if(f)gc;
int x=*ip&15;gc;
while(*ip>'-'){x*=10;x+=*ip&15;gc;}
return f?-x:x;
}

C++实用整数快速输入输出模板(C++)的更多相关文章

  1. 题解报告:hdu 1576 A/B(exgcd、乘法逆元+整数快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n ...

  2. 89. a^b【快速幂模板】

    a^b Description 求 aa 的 bb 次方对 pp 取模的值. 输入格式 三个整数 a,b,pa,b,p ,在同一行用空格隔开. 输出格式 输出一个整数,表示a^b mod p的值. 数 ...

  3. C++快速输入输出优化

    在这里存一下我的快速输入输出优化 以及写题模板 这里的是$getchar$优化和$putchar$优化,$fread$和$fwrite$暂时咕咕咕 快速输入 这里$define$了一个$I\_int$ ...

  4. 矩阵快速幂模板(pascal)

    洛谷P3390 题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 输入输出格式 输入格式: 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素 输出格 ...

  5. JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite)(转载)

    1.JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite) 摘要 本文主要介绍快速输入输出, 文中提到了几个IO类,这里推荐使用Buffered ...

  6. HDU 2817 A sequence of numbers 整数快速幂

    A sequence of numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  7. linux下实用的快速随机生成复杂密码

    linux下实用的快速随机生成复杂密码 [root@test.db-audit.1 ~]# </dev/urandom tr -dc '1234567890!@#$%abcdefghigklmn ...

  8. POJ3070 矩阵快速幂模板

    题目:http://poj.org/problem?id=3070 矩阵快速幂模板.mod写到乘法的定义部分就行了. 别忘了 I ( ) 和 i n i t ( ) 要传引用! #include< ...

  9. 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)

    题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...

随机推荐

  1. .NET Core中向已存在文件的特定位置写入数据

    本例使用.NET Core向一个文本文件中的特定位置写入数据,来模拟文件上传中的断点续传是如何在服务器端实现的. 新建一个.NET Core控制台项目FileContinueToWrite,其Prog ...

  2. Spring Boot和Dubbo整合

    provider端 POM依赖 <dependencies> <dependency> <groupId>org.springframework.boot</ ...

  3. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  4. POJ 1068&&2632&&1573&&2993&&2996

    这次的题目是著名的模拟(水逼)专题 题目难度都不大,思维也不深,就是一个字——烦 同时很多题目都有很多坑点 1608 题意是告诉你一个只有()的字符串(且匹配正确),每个)的左边有几个(,让你求每一对 ...

  5. python 回溯法 子集树模板 系列 —— 11、全排列

    问题 实现 'a', 'b', 'c', 'd' 四个元素的全排列. 分析 这个问题可以直接套用排列树模板. 不过本文使用子集树模板.分析如下: 一个解x就是n个元素的一种排列,显然,解x的长度是固定 ...

  6. SQLServer数据库还原:无法在已有的mdf文件上还原文件

    如果提示无法在已有的mdf文件上还原文件,请修改如下位置

  7. SQL SERVER数据库升级手册

    背景 最近接手很多项目都跟数据库升级有关.感触还是颇深,写个心得,供大家参考,如果有疑问欢迎留言.     为什么升级?   你可能会因为各种各样的原因选择升级.我认为原因主要是3个方面 1.旧版本使 ...

  8. Sterling B2B Integrator与SAP交互 - 02 安装配置

    系统组成: 1. 服务器OS及硬件: OS: Red Hat Enterprise Linux Server release 6.6 Hardware: Virtual Machine, x86_64 ...

  9. 前端示例MVC网站

    前端示例MVC网站 ASP.NET Zero 包含了一个公共web站点的前端页面和一个登陆页面.当您第一次运行项目的时候可以看到,如下图所示: 该前端网站有两个页面,一个是主页和关于我们.这些页面的内 ...

  10. nginx 跳转

    nginx 跳转 一.需求:当需要在别的机访问本机房的服务器问题. 虚拟主机头配置 server { listen ; server_name test.zlx.com; location / { i ...