您的位置:首页 > 编程语言 > C语言/C++

接收用户输入-scanf函数

2015-10-17 20:18 232 查看
1.scanf的作用: 
在程序运行到scanf的时候,接收用户输入的一些数据,并存储在变量之中

2.scanf的语法:
scanf("格式控制字符串",变量地址列表);
语义:格式控制字符串里写占位符,占位符用来接收用户输入1个什么类型的数据,后面写变量的 地址,使用&符号可以取到变量的地址,代表将用户输入的对应的数据存到这个变量里。
如:
int num;
scanf("%d",&num);

3.scanf的特点:
阻塞式函数:即运行到scanf时,除非用户输入完数据,否则会一直停在scanf处等待用户输入

4.scanf函数中的占位符:
代表的意义: 要求用户输入1个什么类型的数据. 所以后面给的变量的地址的那个变量的类型要和格式控制符保持一致.
%d:代表占用一个放int类型(整数)的位置 
%ld:代表占用一个放long类型的位置
%c:代表占用一个放char类型(字符)的位置
%f:代表占用一个放float类型的位置
%lf:代表占用一个放double类型的位置
%u :代表占用一个unsigned int类型的数据
%lu:代表占用一个unsigned long类型的数据

5.写完scanf一定要注意后面接变量地址,并且接同类型的变量地址,否则取到的东西会很异常

scanf需要注意的地方
1、如果scanf函数格式里要求输入的是数(整型、浮点型),那么不管你敲入多少个空格和回车 都会被忽略掉,不会存入到变量中,除非真正输入了数字再按回车,才会存入变量



2、如果scanf函数格式里要求输入的是字符(%c),那么你输入的空格或者回车,都算存入变量



3、如果要接收多个输入,可以写在一起。以空格或者回车代表不同输入



4、最好不要让数字和字符一起输入,否则可能出问题



5、如果一次想接收多个输入,并且想改变分割符(默认是回车或者空格),则可指定相应的分隔 符即可。如下:



scanf运行原理

1). 用户从控制台输入的数据是先存储在1个叫做缓冲区地方

2). 当scanf函数准备为变量赋值的时候.先看看缓冲区中有没有数据
如果缓冲区中没有合适的数据 才会暂停程序让用户从控制台输入 
如果缓冲区中有合适的数据 直接将缓存区中的数据拿出来赋值给变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息