求大神解决关于同一语句不同程序中结果不同的有关问题

求大神解决关于同一语句不同程序中结果不同的问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
    long long T,i,s;
    char c;
    scanf("%lld",&T);
    getchar();
    while(T--)
    {
    s=0;
    i=0;
    while((c=getchar())!=' ')
        s+='c'-48;
    scanf("%*[^\n]%*c");
    while((c=getchar())!='\n')
        s+='c'-48;
    printf("%lld\n",s-48);
    }
}
求大神解决关于同一语句不同程序中结果不同的有关问题
这种情况要连输2个空格才有输出。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
long s;
char c;
   while((c=getchar())!='\n')
        s+='c'-48;
    printf("%lld\n",s-48);
}
求大神解决关于同一语句不同程序中结果不同的有关问题
而这种情况只需输一个回车就可以输出
请问是什么导致的
小弟是菜鸟  求大神指教
------解决思路----------------------
字符缓冲区的问题。
------解决思路----------------------
自己调试跟踪就明白了
注意getchar()的值
------解决思路----------------------
fflush(stdin)
fflush(stdout)
试一下
------解决思路----------------------
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。