读入与输出的优化

1. 读入优化

  • C++中有一个函数:getchar() ,用于读入字符,那么这跟读入整数有什么关系呢?

  • 其实,经过类似高精度的处理,就可以实现类型转换啦!

模板:

#include<cctype>
inline int read()
{
    int X=0,w=0;
    char ch=0;
    while(!isdigit(ch))
    {
        w|=ch=='-';
        ch=getchar();
    }
    while(isdigit(ch))
        X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
    return w?-X:X;
}
  • isdigit(x) 表示 x 是否是 0 ~ 9 的整数 ,是则返回 true ,不是则是 false

  • 注意要用 cctype

  • 头文件。

  • 像这样“XXX=read()”使用函数即可,效率超高

正负实数的读入优化模板:

inline double dbread()
{
    double X=0,Y=1.0;
    int w=0;
    char ch=0;
    while(!isdigit(ch))
    {
        w|=ch=='-';
        ch=getchar();
    }
    while(isdigit(ch))
        X=X*10+(ch^48),ch=getchar();
    ch=getchar();//读入小数点
    while(isdigit(ch))
        X+=(Y/=10)*(ch^48),ch=getchar();
    return w?-X:X;
}

2. 输出优化

  • 在个别繁杂题目中,也可以使用输出优化!

  • 与读入优化类似,使用用来输出字符的“putchar()”函数,也可到目的

正负数输出优化模板:

inline void write(int x)
{
     if(x<0) putchar('-'),x=-x;
     if(x>9) write(x/10);
     putchar(x%10+'0');
}

注意

  • 切记在使用时,应注意数据类型大小和正负!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值