上上一节,我们也说了变量的赋值,那么能不能给变量输入我想要给它的值呢?当然可以。下面我们来看看scanf这个函数。
scanf
scanf类似我们刚刚讲了的printf,scanf是格式化输入(scanf其实还是比较复杂的一个函数,我们这里先用着,学到后面我们再来看看输入输出家族这些函数大家就都明白啦)。
首先我们必须要清楚,scanf只是负责输入,不负责输出。所以想要输出的话还是要靠printf。我们先来看一个例子。
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);//输入一个整数
printf("%d\n",a);
return 0;
}
scanf的输入格式和printf的是一样的如果忘了的话,可以去上一节看看。大家试着把上面的代码放在自己的编译器里试试。
我们来看看这个代码里面的scanf,其实和printf差不多,只是在变量的前面多了一个&,这个&的意思是取这个变量的内存地址。scanf里面用变量的时候一定要取地址,不然运行的时候会报错(当然后面会讲到指针,如果是个指针变量的话就不会,不懂什么是指针就先不管这里)。取地址符&我们会在下一节讲,这里知道它的作用就好了。
大家试着敲敲这段代码
#include<stdio.h>
int main()
{
int a;
float b;
double c;
char d;
printf("输入一个字符(回车结束):");
scanf("%c",&d);
printf("输入一个整数(回车结束):");
scanf("%d",&a);
printf("输入一个单精度数(回车结束):");
scanf("%f",&b);
printf("输入一个双精度数(回车结束):");
scanf("%lf",&c);
printf("字符是%c\n",d);
printf("整数是%d\n",a);
printf("单精度数是%f\n",b);
printf("双精度数%lf\n",c);
return 0;
}
在好好看看这段代码,你就会更好的掌握scanf这个函数。有人可能会发现问题,如果把输入字符放在后面任何一行都会出错,没有显示出想显示的东西。这一点我们会在后面讲输入输出家族的时候详细的分析这个问题。
输入的格式问题
有些人很纠结输入格式的问题,就是我在一个scanf里面输入多个变量的时候怎么办?中间用逗号隔开还是空格?这些应该是很多人纠结的问题。下面我们来看看吧。
假设我们要用空格隔开变量要怎么写呢?效果如下:
代码如下:
#include<stdio.h>
int main()
{
int a,b;
printf("输入两个整数用空格隔开:");
scanf("%d%d",&a,&b);
printf("这两个数是%d和%d\n",a,b);
return 0;
}
如果在scanf的两个%d之间加一个空格也是可以的。
scanf("%d %d",&a,&b);
如果要用逗号分开的话,效果如下:
这个只需要在scanf的两个%d之间加一个逗号就可以了。
scanf("%d,%d",&a,&b);
但是记住如果这个中间有逗号的话就必须用逗号,不然输出的值会有问题,当然中间是空格的话也要有空格,中间什么也没有还是要用空格。
总结
scanf输入函数类似printf函数。
1.我们这里简单的介绍了scanf函数,大家会用就好。
2.scanf和printf函数一样是格式化输入的。输入的时候数据类型一定要对,不然传入的值会有问题。
3.一定不要忘了,scanf函数在输入变量的时候的取地址符号&,因为你不写&编译器不会报错,直到你运行的时候才会出错。
4.最后注意一下输入多个变量的问题。


被折叠的 条评论
为什么被折叠?



