你输入格式要与代码一致
如果代码里没空格,那么输入到%c的时候也必须这样88c4.7,不能有空格,否则%c得到的是个空格
空格也是字符啊。scanf中的格式必须和你输入一一对应才行。如果输入带空格,那么你的%c前面就要加空格,否则%c就接收空格字符了啊
因为下面这个scanf没使用空格,会在读取了输入的88后,会把把后面的空格读取到字符变量c中了。
上面那个scanf中使用了空格,会忽略输入的一个空格,然后正确的把输入中的字符'c'读取到了字符变量c中。
测试代码如下:
参考链接:
#include <stdio.h>
#include <stdlib.h>
int main(void){
int b;
char c;
double a1,a2;
scanf("%lf %d %c %lf",&a1,&b,&c,&a2);
printf("%c %d %.2f %.2f\n\n",c,b,a1,a2);
fflush(stdin);
int b2;
char c2;
double a12,a22;
scanf("%lf%d%c%lf",&a12,&b2,&c2,&a22);
// http://ascii.wjccx.com/
printf("%c %d %.2f %.2f",c2,b2,a12,a22);
// printf("c2=%c,c2=%d\n",c2,c2);
return 0;
}