下面图片内容是关于在scanf()函数中的一些问题。求解释~

#include <stdio.h>int main(){ int a; char ch; double b=1.23; printf("请输入一个整数,一个字符,一个小数\n"); scanf("%d%c%lf",&a,&ch,&b); printf("你输入的是%d,%c,%lf\n",a,ch,b); return 0;}
这个是结果

我每输入一个数据就一个空格,因为第二个是字符数据输入,所谓输完'5'后按空格程序就读取了那个空格输入,所谓结果中a就变成了空格,b原样输出。
然后改成下面这个样子:
#include <stdio.h>int main(){ int a; char ch; double b=1.23; int num=0;
printf("请输入一个整数,一个字符,一个小数\n"); num=scanf("%d%c%lf",&a,&ch,&b); printf("你输入的是%d,%c,%lf\n",a,ch,b); printf("%d被替换.\n",num); return 0;}
加了 int num=0;和printf("%d被替换.\n",num);
之前scanf("%d%c%lf",&a,&ch,&b);改成了num=scanf("%d%c%lf",&a,&ch,&b);
结果就可以读出那个a被空格替换了,求原因?

隔江千里
浏览 322回答 2
2回答

一只名叫tom的猫

注意一个地方,在输入字符型数据时,你在之前为a输入了一个整形数,后加了个' ' 字符,所以ch=' '你可以改成:scanf("%d %c%lf",&a,&ch,&b); %d与%c之间加个空格

芜湖不芜

这样输入就ok了&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP