C语言prinf输出字符'a'问题

img


在第五个输入字符a、b时无法正常输出,要求输出c1='a',c2='b'
不清楚是scanf还是printf时的错误
输入对应的ASCII码97,98也错误
编辑的代码

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b;
    float c,d;
    long e,f;
    unsigned int u,v;
    char c1,c2;
    scanf("%d,%d",&a,&b);
    scanf("%f,%f",&c,&d);
    scanf("%ld,%ld",&e,&f);
    scanf("%o,%o",&u,&v);
    scanf("%c,%c",&c1,&c2);
    printf("\n");
    printf("a=%7d,b=%7d\n",a,b);
    printf("c=%10.2f,d=%10.2f\n",c,d);
    printf("e=%17ld,b=%17ld\n",e,f);
    printf("u=%o,v=%o\n",u,v);
    printf("c1=%c,c2=%c\n",'c1','c2');
    return 0;
}

因为第五个输入之间,有其他类型输入,导致输入缓冲有换行符。第五个输入%c,会自动接收换行符,导致你都不需要输入就完成了。在第五个输入之前加个getchar()接收掉换行符就行了