c语言快读(快读数据)

c语言快读(快读数据)
根本原理:计算机在读入数据的时候如果读入的是数据则读入的速度比较慢,而读入字符比较快。于是
我们可以考虑使用快读读入数据。
根据分块化的思想我们一般将这一部分作为一个字符串来进行调用
一、提前的准备:
#include<ctype.h>//用来调用下面的函数
isdigit(chr):一个相当强力的判断函数。使用这个可以判断chr是不是十进制数字,使用这个来判断字符是
否为数字。
isalpha(chr):一个判断函数,这个函数的用途与前面isdigit的用法是类似的,就是用来判断字符是否为字

二、代码的实现
long long read()
{
        int neg=1,tol=0;
        char chr;
        chr=getchar();
        while(!isdigit(chr))//如果输入的不是数字,那么要看一看是不是负号
{
        if(chr=='-') neg=-1;
        chr=getchar();
}
while(isdigit(chr))
{
        tol=tol*10+chr-'0';//(chr-'0')代表的是字符到数字的转化;tol*10代表着进位;
        chr=getchar();
}
        return tol*neg;//前面为了处理负数的情况,于是使用了一个neg来判断是不是负数来保证最后结果的准确性
}
三、对于快读的一些进阶
`while(i<=n) {
        char ch;
        ch=getchar();
        while(!isdigit(ch)) {
        ch=getchar();
}
while(isdigit(ch)) {
        sum=ch-'0';
        ch=getchar();
        while(isdigit(ch)) {//对于之后几位是不是数字进行判断
        sum=sum*10+ch-'0';
        ch=getchar();
}
        a[i]=sum;
        i++;
}
}`
快读的优越性不仅体现在可以更快的输入数据,更是体现在可以用来区分字符和真正的数字。
虽然使用getchar()进行单个字符的不断地输入,但是我们要注意最后可能会出现有几个数字连在一起
表示同一个数字。e.g.12da1ad5最后就会提取出来1、2、1、5,于是但是我们需要的数字是12、1、5,
于是如果上一位是数字,下一位也要是数字才可以。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值