输入的东西(变量)要保存到一个东西(变量)里面
scanf("%d%d",&a,&b);
&:获取变量的地址,这里是通过地址,将变量的数值放到变量里面。
注:当程序拿到输入的数值后,先查看目标变量(接受输入的变量)的地址,然后,将数值放到该地址的变量中。
跟收快递一样,小明买东西,快递查看小明的地址,然后把快递放到小明手上
============
有这样的一段代码:
#include
void main(){
int age;
char sex;
printf("请输入年龄:");
scanf("%d",&age);
printf("请输入性别:");
scanf("%c",&sex);
printf("==================\n");
printf("年龄是:%d\n性别是:%c\n我前面应该没有空行!\n",age,sex);
}
你会发现运行到输入性别的时候,给跳过了,这是为什么?
因为之前输入年龄的时候按了回车,回车在缓冲区,导致下次输入性别的时候,把那个回车读了进来。
这时候你运行代码的时候,会发现输出的时候,多了个换行;
如果想解决这个问题,我这里提供一个方法,你在前面加个getchar();就把那个回车过滤掉了。
我在网上看到解决这个问题的方法很多,我就记了个简单的。
这时候代码变成了:
#include
void main(){
int age;
char sex;
printf("请输入年龄:");
scanf("%d",&age);
getchar();//等待一下
printf("请输入性别:");
scanf("%c",&sex);
printf("==================\n");
printf("年龄是:%d\n性别是:%c\n我前面应该没有空行!\n",age,sex);
}
注:getchar(); -->程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中). |
|