今天,我们接着来写写C语言的表达式,首先我们看看scanf函数的使用:
scanf函数的使用:
语法:scanf(”格式字符串”,变量的地址)。那么格式字符串包含占位符。
那么何为占位符呢?占位符的意思就是打印到这个地方的时候,不要原样输出,而是要让变量的值填充过去。这个在我们的printf中也是一样的,上一篇博客已经介绍了printf的使用,稍后我们继续来用printf与scanf做比较。
我们先来看一个代码,进而分析scanf函数的应用:
//scanf 函数的使用及注意点
#include <stdio.h>
int main(int argc, const char * argv[]) {
printf("请输入两个数字:\n");
int num1,num2,result;
scanf("%d%d",&num1,&num2);
result=num1+num2;
printf("这两个数的和是:%d\n",result);
return 0;
}
我们看一下输出的结果:
那么我们就如此的简单的使用scanf来接受了用户的输入并且进行了运算。但是里面还有很多我们需要注意的内容:
1、scanf函数是一个阻塞式的函数,当CPU运行到scanf函数的时候。就会停下来,接受用户的输入,回车表示用户输入完毕。
2、输入两个值的时候,中间用空格、回车、tab键隔开
3、两个占位符之间不要隔开
4、多个占位符中间,用的什么符号,那么输入值的时候,多个值中间就应该用什么符号隔开
5、scanf函数输入多个字符的时候,不会忽略空格 回车 tab
6、scanf取值原理:用户从控制台输入的数据会先放在缓冲区当中,变量的取值是从缓冲区中取的数据
7、scanf函数 给变量赋值,不是直接交给变量,而是先去看看缓冲区中有没有数据,如果有数据,就直接拿缓冲区中的数据,如果缓冲区中没有数据 那么才会让用户输入数据,用户输入的所有数据都会放到缓冲区中,包括回车、 空格、tab
8、在用scanf函数接收字符赋值的时候,之前,如果把缓冲区里面的数据都清空掉,那么就会让用户输入了
不然就有可能赋 缓冲区 当中的 已经存在的值 回车 空格 tab
不然就有可能赋 缓冲区 当中的 已经存在的值 回车 空格 tab
我们接下来看一下printf与scanf的区别:
1、写法一样,意义不同。
printf占位符:把这个变量以当前这个格式类型输出。printf函数输出的时候,我们喜欢加\n换行。
scanf占位符,接受一个这个类型的值,交给我们的变量。不能加\n。
2、
printf函数,输出的是变量的值,直接用变量名称就OK
scanf函数,实际上是给内存中的那一块空间赋值,所以要用&找到这个变量所在的那一块空间