本帖最后由 tpdddP 于 2022-4-3 13:39 编辑
代码如下:
[C] 纯文本查看 复制代码 #include<stdio.h>
int main()
{
int a;
char b;
printf("输入数字a:\n");
scanf("%d",&a);
printf("输入字符b:\n");
scanf("%c",&b);
printf("数字a为:%d\n字符b为:%c",a,b);
return 0;
}
结果如下:
[C] 纯文本查看 复制代码 输入数字a:
1
输入字符b:
数字a为:1
字符b为:
--------------------------------
Process exited after 0.9337 seconds with return value 0
请按任意键继续. . .
我敲下1再按回车,按道理应该打印“输入字符b:”,然后程序暂停,等待我输入字符后回车再继续,可是为什么这个编译器在我输入1后回车就执行剩下的代码呢?根本没有给我输入字符b的机会。
更奇怪的是,我把代码改成这样。
[C] 纯文本查看 复制代码 #include<stdio.h>
int main()
{
int a,b;
//char b;
printf("输入数字a:\n");
scanf("%d",&a);
printf("输入数字b:\n");
scanf("%d",&b);
printf("数字a为:%d\n数字b为:%d",a,b);
return 0;
}
。
在我输入1后回车,程序打印出"输入数字b:”后程序暂停,等待我输入数字。并不是像刚才那样直接执行剩下的代码。
求助论坛的hxd们,是什么问题呢? |