while(scanf(""))中空格对输出的影响

while(scanf("三个%c",\&a,\&b,\&c)!=EOF)第一个%c前无空格程序运行会出错与 while(scanf(" 三个%c",&a,&b,&c)!=EOF)运行结果不同

(代码while(scanf(""))中是三个%c平台不让连续输入)
有空格的可以正常输出如:abc
a b c
qpo
o p q
而无空格的只有第一次输出的是正确,后面则无规律输出

代码奉上

#include
int main()
{
char a,b,c,d;

while(scanf(" %c有三个%c",&a,&b,&c)!=EOF){                                       
 if(a>b) {
        d=a,a=b,b=d; 
    }
 if(a>c) {
        d=a,a=c,c=d;
    }
 if(b>c) {
        d=b,b=c,c=d;
    }
 printf("三个%c\n",a,b,c);
}
 return 0; 
}

while(scanf(" %c %c %c",&a,&b,&c)!=EOF)这样改才可以输入三个
printf("%c %c %c\n",a,b,c);也是这样才有三个输出


#include <stdio.h>
char a = 0, b = 0, c = 0;
int main() {
    while (scanf("%c%c%c", &a, &b, &c) != EOF) {
        if (a==b && b==c) {
            printf("三个相同,%c\r\n", a);
        } else {
            printf("三个不同, %c%c%c\r\n", a,b,c);
        }
    }
    return 0;
}