printf函数 + scanf函数
3.1 printf函数
①printf函数显示格式串的内容,并可在该串中指定位置插入值。调用printf函数必须提供格式串,格式串后面的参数是需要在显示时插入到该串中的值。 eg
printf (格式串, 表达式1, 表达式2, ...);
显示的值可以是常量,变量,表达式,一次打印的值的个数没有限制。
②格式串包含普通字符和转换说明,转换说明表示打印过程中待填充的值的占位符。转换说明以 % 开头, % 后面的信息指定了从内部形式(二进制)转换为打印形式(字符)的方法;
③格式串中的转换说明要用待显示的值来替换,普通字符和在字符串中出现的那样显示;
④printf()四种用法 ------ 将变量内容输出到显示屏上
(1)printf("字符串");
(2)printf("输出控制符",输出参数);
(3)printf("输出控制符1 输出控制符2 ...", 输出参数1, 输出参数2, ...);
(4)printf("输出控制符 非输出控制符", 输出参数);
⑤转换说明可以用 %m.pX格式或者 %-m.pX格式。m, p 是整数, X是字母, 省略p时要连同小数点一起省略。
⑥转换说明中,m (最小字段宽度)指定了要显示的最少字符数量,字符数少于m则右对齐(值前面放置额外空格),在 m 前加上 - 为左对齐;
⑦转换说明中,p(精度)依赖于 X(转换说明符)
d ---- 十进制整数。p指明待显示的数字的最少个数(必要时在数前加上额外的零),不是小 数点后的位数,区别于%e, 省略p默认位数为1;
e ---- 指数(科学计数法)形式的浮点数。p 指明小数点后数字个数,默认为6位,p为0则不 显示小数点;
f ---- 定点十进制浮点数。p 指明小数点后数字个数,默认为6位,p为0则不显示小数点;
g ---- 指数形式或定点十进制形式的浮点数,形式选择根据数的大小决定;
⑧转义序列:eg. 警报符: \a 产生一声鸣响
回退符: \b 使光标从当前位置回退一个位置
换行符: \n 使光标跳到下一行起始位置
水平制表符: \t 把光标移到下一个制表符的位置
\" 字符 " 标记字符串的开始与结束,它不能出现在没有使用 上述转义序列的字符串内。eg.
printf("\"Hello!\"")
输出结果为 "Hello!"
⑨不能在字符串中只放置单独一个字符 \ ,编译器会认为他是一个转义序列的开始。为了显示单独一个 \ ,需要在字符串中放置两个 \ ; eg
printf("\\")
⑩printf函数在格式串中遇到两个连续的 % ,那么它将显示出一个 % ;
3.2 scanf函数
①scanf函数格式串也包括转换说明和普通字符,scanf函数和转换说明的用法和printf函数转换说明的用法本质上一样的;
②使用scanf函数时,必须检查转换说明的数量是否与输入变量的数量相匹配,并检查每个转换是否适合相对应的变量;
③记得把取地址符 & 放在每个变量的前面;
④调用scanf函数读数据有效但不理想,更多采用字符格式读取所有数据,然后再把它们转换成数值形式;
⑤scanf()用法 通过键盘将数据输入到变量中
(1)scanf("输入控制符", 输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数 的值为地址的变量中;
(2)scanf("非输入控制符 输入控制符", 输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数 的值为地址的变量中,非输入控制符必须原样输入;
⑥scanf函数本质上是一种“模式匹配”函数,试图把输入的字符串与转换说明相匹配。scanf函数从左边开始处理字符串中的信息。对于格式串中的每一个转换说明,scanf函数从输入的数据中定位适当类型的项,并在必要时跳过空格,在遇到不属于此项的字符时停止;读入数据成功,scanf函数则继续处理,读入数据失败,scanf函数不再查看格式串剩余部分;
⑦scanf函数中,%e, %f, %g是可以互换的,在用于浮点数时遵循相同规则;
⑧格式串中的普通字符:
(1)空白字符:格式串中遇到一个或多个连续空白字符时,scanf函数从输入中重复读空白字 符直到遇到一个非空白字符为止,格式串中空白字符数量无关紧要,格式串 中的一个空白字符可以与输入中任意数量空白字符相匹配,包括零个格式串 中包含空白字符并不意味着输入中必须包含空白字符;
(2)其他字符:格式串中有非空白字符时,scanf函数将把它与下一个输入字符进行比较。如 果两个字符相匹配,那么scanf函数会放弃输入字符而继续处理格式串。如果 两个字符不匹配,scanf函数会把不匹配的字符放回输入中,然后异常退出, 不会进一步处理格式串或者从输入中读取字符;
eg.假设格式串是%d/%d, 输入为·5/·96则可读取,输入为·5·/·96在第二个空格时停止;
⑨printf函数和scanf函数易混淆的点:
常见错误(1):printf函数调用时在变量前放置&;
常见错误(2):除了转换说明,格式串常常不要包含字符,因为scanf函数在寻找数据时通 常会跳过空白字符;
常见错误(3):printf函数通常以 \n 结尾, 但在scanf函数格式串末尾放置 \n 通常是一个坏 主意;
printf函数 + scanf函数相关推荐
- C语言printf与scanf函数
在程序开发中,经常会进行一些输入.输出操作 C语言中,提供了printf()和scanf()函数 Printf()函数,用于向控制台输出字符 Scanf()函数,用于读取用户的输入 Printf()函 ...
- c语言程序输入与输出函数,C语言printf()和scanf()函数?其实就是输入输出
在解释这两个函数之前,为了方便大家更容易理解,我们先来讲讲下面的这幅图. 这个图中的例子其实很简单,我们就是把题目通过输入设备(例如键盘鼠标)传输到计算机中,然后让计算机进行运算得出结果,再然后把结果 ...
- C语言输入和输出(printf和scanf函数、putchar和getchar函数)
printf和scanf函数.putchar和getchar函数 输入输出操作都是由C标准函数库中的函数来实现的,要在程序文件开头用预处理指令#include把有关文件放在本程序中#include&l ...
- IOS学习笔记07---C语言函数-scanf函数
2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072 ...
- gets 函数 - fgets 函数 - scanf 函数 - gets_s 函数 - 字符串最后一个单词的长度
gets 函数 - fgets 函数 - scanf 函数 - gets_s 函数 - 字符串最后一个单词的长度 1. gets 函数 在 C 语言中,while 循环的功能和它在其他语言中一样.它首 ...
- scanf 接收 空格 输入_【C语言】- printf 和scanf 函数详解!
一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据. 1.用法 1> p ...
- C语言scanf输入a3,【C语言】04 printf和scanf函数
1.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include ,使用它可以向标准输出设备输出数据 1.用法 1> printf(字符串) printf(&quo ...
- C语言scanf函数详细解释,[转载]C语言printf和scanf函数详细用法
Printf和Scan函数的使用方法 一 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.printf()函数的调用格式为: prin ...
- STM32L152RC 在keil4中使用printf()和scanf() 函数
1.在keil中配置使用Micro LIB,如下图 2.配置USART模块 void SYS_USARTInit(void) { static USART_InitTypeDef USART_Init ...
最新文章
- MySQL 微秒慢查询补丁
- 【号外】来人鸭~ 本公众号纳新啦~
- poj1386(判断一个有向图是否存在欧拉回路)
- Tensorflow【实战Google深度学习框架】TensorFlow模型的保存与恢复加载
- 【mongoDB实战】mongo对某个键添加索引
- 99%的人都会用错或者不会看的N折验证
- 集合元素处理(传统方式)
- linux安装python3教程_linux下安装python3和对应的pip环境教程详解
- 文件指针创建失败!File *fp失败
- 2016年4月 TIOBE 编程语言排行榜
- Java Long类的valueOf()方法及示例
- (软件工程复习核心重点)第六章实现和测试-第七节:黑盒测试
- 云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
- 12muduo_base库源码分析(三)
- java基础-- 集合框架入门 及 List集合
- 第5章分布式系统模式 Broker(代理程序)
- svn之删除文件并释放空间
- 用Android studio搭建沃商店SDK任意支付的配置
- Vue系列之-Idea进行Vue前端调试
- 地理加权回归学习记录
热门文章
- 【腾讯优测干货分享】Android5.0-6.0双卡适配指南
- php常见留言板框架,留言板-PHP框架-51CTO博客
- 3D建模师能做什么?游戏动漫电影统统不在话下,前景好薪资还高
- ssm毕设项目焦作旅游网站q5msq(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 设计模式之适配器模式(一)
- C/C++面试笔试详细总结—基本概念及其它问答题
- 支付宝错误 ALIN10146 排查
- 微软MS08-067漏洞,小白必看,超详细!!!
- Hello, Cocos2d-x
- 基于spark的流式数据处理—流计算处理流程以及应用场景