A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 有款不辩 中级黑马   /  2016-1-20 14:00  /  2232 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.是什么?

C语言下的scanf()函数是样式化输入函数,由C语言自带的库提供,

二.有什么用?

可以按用户指定的格式从键盘上把数据输入到指定的变量之中.

三.怎么用?

1.#include<stdio.h> 引入头文件,表示在这个文件里要用到里面的scanf()函数.

2.scanf("格式化字符串,变量地址);如:int a;int b;        sanf("%d,%d",&a,&b);

3.格式化规定字符,以[%]开始,后跟一个或几个规定字符

常用:%d 整数   %f  浮点数    %c 单个字符   %s字符串   %p  指针的值

[双精度浮点类型double字符是%lf]

四.什么时候用?

当你想通过外部输入数据赋值到程序变量的时候.

五.有什么特点?

1.可以单个或批量输入,但两个%%之间的分割内容必须按原样输入.

2.格式化字符处啊不能\n做换行,直接回车就可以表示结束并自动换行.


file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/3747961.png


file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/10840515.png

[scanf()函数一般用于跟用户进行交互,让用户把数据输入到程序中去,实现特定功能

file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/6554730.png

1.

scanf函数和printf函数的区别

1.scanf函数用来输入,printf函数是用来输出.

2.scanf函数不能用\n换行符换行

3.scanf函数后面定的是变量的地址值,printf函数后面定的变量名.

共同点

都需要引入#include<stdio.h>头文件,都是C语言给我们提供的定义好的函数

4.用的类型占用都是一样的.

2.

变量在内存中占用的空间大小要看变量类型和编译环境,所以占用空间不一样大.

3.

一样大,占用内存空间大小只跟变量类型和编译环境有关,和赋值多少无关,两个

都是int型所以一样大.

4.

得看什么编译环境.

5.

打印的a的值是0[因为printf()函数作用域内是int a=0;[就近原则,一级作用域] 而没有定义变量类

型的a=3就近原则向上寻找变量引用是int a=2的作用域,改变的是int a=2


2.写一个整数乘法计算器,在控制台上输入任意两个整数会计算得出二者

的乘积.

  • #include <stdio.h>
  • int main()
  • {
  •    int a,b;
  •    printf("请输入两个整数,用逗号分隔");
  •    scanf("%d,%d",&a,&b);
  •    printf("这两个整数的乘积是:a%d*b%d=%d\n",a,b,a*b);
  •    return 0;
  • }

file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/5075714.png

file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/15344791.png

file:///var/folders/tj/3nhzf8fj3pg3g0tn9n2d758h0000gn/T/cn.wiz.wiznoteformac/WizNote/7815255.png

1.能,先定义一个接受数据的变量,同时确定这个变量的类型.

2用scanf函数,确定控制台要输出的数据类型[%d整数 %f浮点数  %c字符 %s 字符串0

3.在scanf函数第二个部分放上这个变量的地址.(使用取址符加变量名[&变量名])

4.如何判断一个数据输入时是否赋值成功?

file:///var/folders/tj/3nhzf8fj3pg3g0tn9n2d758h0000gn/T/cn.wiz.wiznoteformac/WizNote/6319432.png

scanf执行完后会返回一个int整数,且只有两个值,0或1.

容易犯的错误

1.sanf函数使用时,没有导入#include<stdio.h>

2.有一个scanf函数就会有一次阻断

例如:

1:正确写法,可以同时输出scanf返回的int值看看是否成功和输出用户键入的数值.


  • #include<stdio.h>
  • int main()
  • {
  • int a=1
  • printf("请输入....\n");
  • int isOK=scanf("%d",&a);
  • printf("是否赋值成功了=%d\n",isOk);
  • printf("控制台输出的数据是:%d\n",a);
  • return 0;
  • }

错误写法:.有一个scanf函数就会有一次阻断

file:///var/folders/tj/3nhzf8fj3pg3g0tn9n2d758h0000gn/T/cn.wiz.wiznoteformac/WizNote/13126267.png


3.小数可以赋值给整数,这个会产生精度丢失,但是可以实现.

4.确定一个数据是否赋值成功必须看返回结果,是否是1.

5.在scanf函数里用\n,这是错误的.

6.一次性给多个变量赋值时,要注意格式正确!

file:///var/folders/tj/3nhzf8fj3pg3g0tn9n2d758h0000gn/T/cn.wiz.wiznoteformac/WizNote/15260756.png


批量赋值有区别:scanf("%d--%d",&d,&a);

这个返回值是批量赋值成功的数量,如果两个都成功了,则是2.如果都不成功,则是0;

file:///var/folders/f6/22br_b6x6t90wkzv5gkqssmr0000gn/T/WizNote/d56697f4-2566-4c37-9dce-ced39a7dfa88/index_files/7848869.png


5 个回复

倒序浏览
原来有这么多scanf的知识
回复 使用道具 举报
可以可以可以可以
回复 使用道具 举报
加油加油
回复 使用道具 举报
不错 学习到了
回复 使用道具 举报
我说看到题目后,这个函数是个什么鬼,原来是scanf(),学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马