scanf函数

scanf函数

1.功能

scanf ()是C语言中的一个输入函数,作用是通过键盘给程序中的变量赋值,可以按用户指定的格式从键盘上把数据输入到指定的变量之中;基本语法格式为“scanf (“格式符”,输入参数)”。 scanf ()是C语言中的一个输入函数。

2.格式

①格式一

scanf("输入控制符", 输入参数);
(1)功能

将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中

下面用一串代码来举个例子

#include <stdio.h>
int main()
{
int a;
a = 114514;
printf("a = %d\n", a);
return 0;

这串代码很简单,最后打印结果不用说都知道a=114514,但是对于这个值是不是已经固定为114514了,而不能是其他的值,很多时候我们希望这个值能够灵活一点,让它能够变成其他值,此时就要用到scanf函数。

# include <stdio.h>
int main()
{
int a;
scanf("%d", &a); //&a 表示变量 a 的地址,&是取地址符
printf("a = %d\n", a);
return 0;
}

对于以上的代码需要清楚两点

1.“输入控制符”和“输出控制符”是一模一样的。比如一个整型数据,通过 printf 输出时用%d输出,通过 scanf 输入时同样是用%d。

2.&是一个取地址运算符,&后面加变量名表示“该变量的地址”,所以&a就表示变量a地址。&a又称为“取地址a”,就相当于将数据存入以变量 a 的地址为地址的变量中。

(2)总结

scanf 语句的意思就是:从键盘上输入字符 1919810或者其他内容,%d将这几个字符转化成十进制数 1919810,最后通过“取地址 a”找到变量 a 的地址,再将数字 1919810 放到以变量 a 的地址为地址的变量中,即变量 a 中,所以最终的输出结果就是a=1919810,结果如下图。

image-20221117001331216

②格式二

 scanf("输入控制符非输入控制符", 输入参数);

下面用一串代码来演示这个形式

#include <stdio.h>
int main()
{
int a;
scanf("a = %d", &a);
printf("a = %d\n", a);
return 0;

在 printf 中,所有的“非输出控制符”都要原样输出。同样,==在 scanf 中,所有的“非输入控制符”都要原样输入。==所以在输入的时候a=必须要原样输入。比如要从键盘给变量 a 赋值 114514,那么必须要输入a=114514才正确,少一个都不行,否则就是错误,结果就是a=0

如下图所示

错误的

image-20221117004017521

正确的

image-20221117004058287

3.总结

  1. 在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记
  2. scanf 中双引号内,除了“输入控制符”外什么都不要写。
  3. “输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。
  4. “输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类型,数据是用户输入的,程序员是无法决定的,所以在写程序时要考虑容错处理,这个稍后再讲。
    数上”一定要一一对应。
  5. “输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类型,数据是用户输入的,程序员是无法决定的,所以在写程序时要考虑容错处理,这个稍后再讲。
  6. 使用 scanf 之前先用 printf 提示输入。
  • 14
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值