c语言scanf_C语言(5) 键盘输入指令scanf

a5ede452d549bb1690d7d986a67450f3.png

输入指令scanf

如果把计算机比作一个人,那么printf指令是让计算机具备说的能力,而scanf指令是让计算机具备听的能力。

用术语来描述,计算机说的能力是“输出”,计算机听的能力是“读入”。

输入指令scanf,也称为格式化输入指令,最常用于从键盘读入信息。

与printf类似,scanf对输入格式的设定也是通过scanf的参数实现。

例如:

int a;

scanf("%d", &a);

printf("%d\n", a);

上面的语句中,先在内存中分配一个变量盒子a,因为我们马上要从键盘接受信息并放入盒子a中,所以我们没有必要对变量a进行初始化。第二条语句是从键盘接受一个整数,并将这个整数放入变量a中。第三条语句是将变量a中的整数打印在电脑屏幕上。

第二条语句中的变量a前面有符号“&”,而第三条语句中没有。因为,当要把从键盘读入的信息放入变量a中的时候,需要告知计算机变量盒子a的地址,计算机是根据地址把接受的信息写入变量盒子a中。第三条语句中,把变量盒子a中的信息取出来,则可以直接用变量的名称就可以去除变量盒子中的信息,不需要符号“&”。

符号“&”,被称为“取址符”,可以获取变量a在内存中的地址。

输入多个数

用一条语句读入多个数。

例如:

int a, b;

scanf("%d%d", &a, &b);

第二条语句中,从键盘读入两个整数,分别放入变量a和变量b中,完成信息输入。

但有些时候,从键盘实际输入的内容与希望输入的格式不匹配,就会出现意料之外的结果。

例如:

int a;

float b;

scanf("%d%f", &a, &b);

printf("%d\n", a);

printf("%.3f\n", b);

第三条语句中,是先读入一个整数放入变量a中,在读入一个浮点数放入变量b中。正常的键盘输入类似:18  2.339,则数字18会写入变量a中,2.339会写入变量b中,用printf输出的时候,分别输出18和2.339。但是,当用键盘输入数字18.339 2并回车的时候,会发现是数字18写入变量a中,而0.339写入变量b中,而数字2则被完全忽略,最终的输出结果是18和0.339。

scanf的返回值

scanf有返回值,返回值的类型为int型整数,含义为成功输入的数据项的个数,也即已匹配的输入项的个数。

例如:

int a;

float b;

scanf("%d%f", &a, &b);

上面的语句中,当成功写入两个数字到变量a和b中后,scanf会返回数字2。

再例如:

float a;

scanf("%f", &a);

上面的语句中,当输入字符‘c’之后,计算机发现字符‘c’无法写入浮点型变量的盒子a中,写入失败,会返回数字0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值