getchar可以连续扫描多少个字符,是否有限制?

时间:2019-03-12 20:57:31

标签: c stdio getchar

我分配了一个程序来计算整数的迭代数字和,例如。进行数字求和,直到结果为一位数字。问题是他们测试的数字更大,可以存储在任何int类型中(大约10 ^ 40000),所以我的想法是使用getchar()进行第一个求和,将数字逐位累加。 我的代码

#include <stdio.h>

int main(){
    long int n=0;
    int c;

    //first sum
    while((c=getchar())!=EOF && c!='\n'){
        n+=(c-'0');
    }

    //iterative summing
    long int s;
    do{
        s=0;
        while(n>0){
            s+=n%10;
            n/=10;
        }
        n=s;
    }while (n>=10);

    printf("%ld\n",s);
    return 0;
}

它适用于相对较短的数字,但是在某一点之后,总和会出现错误。因此,我尝试设置一个变量,该变量将随着每个字符的总和而递增,并且始终显示4095。

所以我的问题是,使用getchar()从stdin可以获取多少个字符有11位的限制?如果是这样,有没有办法获得更多?

0 个答案:

没有答案