黑马程序员-----第三篇 有关scanf函数
来源:互联网 发布:阿里云解析不成功 编辑:程序博客网 时间:2024/06/08 10:30
在学习过程中,有关于scanf函数存在很多的疑问,经过查阅,最终总结如下:
1、scanf的介绍以及使用
(1) scanf函数:如果使用这个函数,要包含一个头文件 stdio.h
(2) scanf是阻塞式的函数:函数执行后,会等待用户的输入,如果用户不输入任何内容,它会一直等待。
(3)scanf函数的作用:从键盘接收用户输入的内容,保存到指定的变量中。
(4)scanf函数的格式:scanf("格式控制符",输入项的地址列表);
代码练习:
#include <stdio.h>
void test(){
//从键盘上接收一个人得年龄,然后打印出来
//获取变量的地址:用取地址符号 &
//1、定义变量
int age=-1;
//2、给一个提示,让用户输入一个年龄
printf("请输入年龄:\n");
//把用户输入的值,放到age变量中
//如果输入的是小数,此时age只保存整数部分
scanf("%d",&age); //获取了age这个变量的地址
//3、打印用户输入的年龄
printf("您输入的年龄是:%d\n",age);
}
int main(int argc,const char * argv[]) {
//接收一个小数
float score=0.0f;
printf("请输入一个分数:\n");
//接收用户输入的值保存到score中
scanf("%f",&score); //此处不允许写%m.nf,但是%mf是可以的
//打印score的值
printf("%3.2f\n",score);
test(); //调用test函数
return 0;
}
输入:99回车20回车
输出结果如下:
请输入一个分数:
99
99.00
请输入年龄:
20
您输入的年龄是:20
2、scanf使用的注意事项
(1)scanf函数当遇到回车的时候,会结束执行。
(2)接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略。
(3)关于scanf中,尽量不要使用 \n,如果一不小心使用了:
1) 输入值后,随便输入一个内容
2)\n要原样输入
代码测试如下:
int main(int argc,const char * argv[]) {
int age=-1;
scanf("%d\n",&age); //只能输入跟scanf一样的格式,否则输出结果不正确
printf("age = %d\n",age);
return 0;
}
如上所示的代码:要想得到想要的结果,只能按照格式输入数字和\n。例如输入:20\n
输出结果是:age=20
3、scanf函数原理以及本质
(1)当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中。然后,scanf函数会根据格式控制的字符的要求,从输入缓冲区依次取它想要的内容。如果从缓冲区中取得内容和和我们的格式要求一致,则把值存放到变量中(%d %c %d)。如果格式不一致,则不修改变量的值。
(2)如果scanf缓冲区中还有内容,则scanf不会提示我们再次输入。
(3)运行流程:
1)首先系统会提供一个缓存(可以存储用户输入的内容的一段内存)
2)scnaf 在执行的时候,会首先到缓存中进行扫描,将取得的字符与格式化字符串进行比对,如果比对不成功,那么不读取任何字符函数结束。如果比对成功,那么读取匹配到的数据,然后结束,并将匹配到的数据转换成必要的格式,赋值给传入的变量。
- 黑马程序员-----第三篇 有关scanf函数
- 黑马程序员-scanf函数
- 05.黑马程序员-scanf函数、printf函数
- 黑马程序员 -- IOS C语言 scanf函数
- 黑马程序员-scanf函数的原理
- 黑马程序员——变量、printf函数、scanf函数
- 黑马程序员—输出函数printf和出入函数scanf
- 黑马程序员——数据类型、printf函数与scanf函数
- 黑马程序员(一)-------scanf函数、基本运算、流程控制
- 5、黑马程序员-C语言的scanf函数
- 黑马程序员-IOS-C语言基础-scanf函数
- 黑马程序员-ios学习笔记-C语言scanf函数
- 【错误】 - Scanf函数与字符串不得不说的故事 - 黑马程序员
- 黑马程序员——c语言基础:scanf函数
- 黑马程序员-IOS基础---scanf函数用法及注意事项
- 黑马程序员-C语言基础三:scanf函数
- 黑马程序员——C语言中的scanf函数
- 有关scanf函数小知识
- Android中关于Service的一些事
- Codeforces Round #299 (Div. 2)
- Android ListView数据绑定显示的三种解决方法
- Public Speaking Earning Opportunities
- C陷阱与缺陷读书笔记(第6章)预处理器
- 黑马程序员-----第三篇 有关scanf函数
- 阿里巴巴2015年面试经历
- HDU 4549 M斐波那契数列
- 看了关于结构体的视屏一些注意已结题会
- 解题报告 之 SOJ1839 Relatives 欧拉函数 算法详解
- Caffe4——计算图像均值
- 主流编程语言优劣考
- windows下的gitbub使用入门
- 纹理格式